当我在 VIM 上使用 cscope 时
我必须输入完整的函数名称。
例如
cscope find s SearchGoIndexOne
当我知道完整的函数名称时是可能的,但当我只知道部分单词时不可用。
有什么好的解决方案吗?
或任何用于替换 cscope 的插件?
您可以将 cscope 设置为您的标签系统:
set cst
这将允许您使用普通的标签功能来执行标签搜索。该tag
命令将为您完成标签名称。例如
:tag MyFunc<TAB>
哪个应该给你你想要的。另外不要忘记您可以使用 cscope 进行正则表达式搜索,这也可用于查找部分符号名称:
cscope find e SearchGo.*
最后但并非最不重要的一点是,使用 cscope 可以做的最好的事情之一就是映射一些对光标所在单词起作用的击键。这给您一种非常流畅的 IDE 感觉:
fun! MapCSKeys()
nmap cF :cs f f <C-R><C-F><CR>
nmap cS :cs f s <C-R><C-W><CR>
nmap cI :cs f i <C-R><C-W><CR>
nmap cE :cs f e <C-R><C-W><CR>
nmap cG :cs f g <C-R><C-W><CR>
nmap cD :cs f d <C-R><C-W><CR>
nmap cC :cs f c <C-R><C-W><CR>
nmap cT :cs f t <C-R><C-W><CR>
nmap cWF :vert scs f f <C-R><C-F><CR>
nmap cWS :vert scs f s <C-R><C-W><CR>
nmap cWI :vert scs f i <C-R><C-W><CR>
nmap cWE :vert scs f e <C-R><C-W><CR>
nmap cWG :vert scs f g <C-R><C-W><CR>
nmap cWD :vert scs f d <C-R><C-W><CR>
nmap cWC :vert scs f c <C-R><C-W><CR>
nmap cWT :vert scs f t <C-R><C-W><CR>
endfun