如何使用vim" ctrl +]"找到用' - '定义的函数

时间:2014-08-01 02:38:14

标签: vim makefile ctags

嗨〜我是新来的,我遇到了vim的问题。

我有makefile,并且使用' - 定义了函数,例如“stub-addon-jar”

然后我使用了ctags生成标签文件,它实际上得到了这些函数的定义。

之后我用vim打开一个makefile,设置标签变量,用正常变量测试“ctrl +]”并且它正常工作。

然后我把光标放在功能“stub-addon-jar”被调用的地方,并且“ctrl +]”。但是vim显示“标签未找到:插件”。

似乎vim没有得到整个“stub-addon-jar”,只是“addon”作为标记的输入。

我该如何解决这个问题?是因为vim用于拆分单词的方法吗?

3 个答案:

答案 0 :(得分:1)

您可以使用正则表达式搜索而不是默认的全字搜索:

:tag /addon<CR>
nnoremap <C-]> :tag /<c-r>=expand('<cword>')<CR><CR>

答案 1 :(得分:0)

这很难。我尝试了几件事,但是当我命名这样的函数时它对我也是一样的。我能得到的最接近的是将光标放在函数上,然后按gd(搜索本地定义)或gD在当前文件外搜索。

注意,gd和gD(转到定义)是内置的vim命令。

我最喜欢的一个插件是taglist.vim。它没有通过点击呼叫点来定义。它将显示文件中所有函数的列表,并允许您通过单击它们传输到任何函数。它对这些名字没有任何问题。

答案 2 :(得分:0)

正如他在评论中提到的F​​Dinoff,正确的解决方案是更改vim对单词的定义以包含-字符。

set iskeyword+=-

设置完成后,标签跳转应该正常工作。

这是另一个related question讨论在单词定义中添加和删除字符。