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