我正在开始 Lua 开发,因此我在一个简单的入门项目上运行 ctags,并尝试使用 Ctrl + ] 跳转源代码。尝试此操作后,我收到 E426: tag not found: cache_objects
,其中 cache_objects
是另一个文件中的函数。我检查了标签文件,cached_objects
中有正确的条目。我还检查了我的标签路径,它是正确的。
然后我尝试显式执行标签命令::ta cache_objects
。这返回了相同的错误。现在事情即将变得奇怪了。我执行了::ta/cache_objects
,它成功了!它把我带到了定义为的函数:
function cache_objects (basedir)
...
我仔细检查了拼写以确保其正确。怎么会发生这种事?
最佳答案
这是 ctags 中的错误。 http://sourceforge.net/p/ctags/bugs/347/
如果您注意到标签文件中的字段是制表符分隔的。但是,当 ctags 生成 cache_objects 标记时,它后面包含空格。 vim 仅在使用 <C-]>
时查找完整单词这就是为什么它没有找到该标签,但当您使用正则表达式搜索时却找到了它。如果您将该行更改为
function cache_objects(basedir)
它有效。
关于Vim ctags 行为异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25276918/