Vim ctags 行为异常

标签 vim lua ctags

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

相关文章:

html - 如何强制 vim 将文件语法高亮显示为 html?

c++ - lua/C++ 对象与静态成员的绑定(bind)

string - 使用lua解析代码语法?

ruby-on-rails - Ctags 生成最新版本的 gems

macos - 通用 ctags YAML 支持

javascript - 将 VIM omnicomplete 用于带有 ctags 的 javascript

bash - 有没有等同于 bash 的 '!$' 的 vim?

vim - VIM 中的锁定标记

vim - 使用 vim 和 coc-clangd 索引整个项目目录

lua - Redis 链接命令