Vim标签的行为很奇怪

  • 本文关键字:标签 Vim vim lua ctags
  • 更新时间 :
  • 英文 :


我正在开始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)

最新更新