Vim ctags表现得很奇怪

时间:2014-08-13 01:59:21

标签: vim lua ctags

我开始使用Lua开发,所以我在一个简单的初学者项目上运行了ctags,尝试使用 Ctrl + ] 跳转源代码。尝试此操作后,我得到了E426: tag not found: cache_objects,其中cache_objects是另一个文件中的函数。我检查了标签文件,cached_objects的条目正确。我还检查了我的标签路径,这是正确的。

然后我尝试显式执行tags命令::ta cache_objects。这返回了相同的错误。现在事情将变得奇怪。我执行了:ta /cache_objects,它有效!它带我到定义为的函数:

function cache_objects (basedir)
    ...

我仔细检查拼写以确保它是正确的。怎么会发生这种情况?

1 个答案:

答案 0 :(得分:3)

这是ctags中的一个错误。 http://sourceforge.net/p/ctags/bugs/347/

如果您在代码文件中注意到这些字段是以制表符分隔的。但是当ctags生成cache_objects标记时,它包含了后面的空格。 vim在使用<C-]>时只查找完整的单词,这就是为什么它没有找到标签,但在使用正则表达式搜索时确实找到了它。如果将行更改为

function cache_objects(basedir)

它有效。