我开始使用Lua开发,所以我在一个简单的初学者项目上运行了ctags,尝试使用 Ctrl + ] 跳转源代码。尝试此操作后,我得到了E426: tag not found: cache_objects
,其中cache_objects
是另一个文件中的函数。我检查了标签文件,cached_objects
的条目正确。我还检查了我的标签路径,这是正确的。
然后我尝试显式执行tags命令::ta cache_objects
。这返回了相同的错误。现在事情将变得奇怪。我执行了:ta /cache_objects
,它有效!它带我到定义为的函数:
function cache_objects (basedir)
...
我仔细检查拼写以确保它是正确的。怎么会发生这种情况?
答案 0 :(得分:3)
这是ctags中的一个错误。 http://sourceforge.net/p/ctags/bugs/347/
如果您在代码文件中注意到这些字段是以制表符分隔的。但是当ctags生成cache_objects标记时,它包含了后面的空格。 vim在使用<C-]>
时只查找完整的单词,这就是为什么它没有找到标签,但在使用正则表达式搜索时确实找到了它。如果将行更改为
function cache_objects(basedir)
它有效。