linux - vim ctags,两个相同的条目,不会直接跳转到定义

标签 linux bash shell vim ctags

我使用 ctags -R . 来生成标签,

如果我在某些函数上尝试 ctrl ],我总是会得到两个相同的条目

 # pri kind tag                    file
  1 F   f    accept_the_connection  src/connection.c
               int accept_the_connection(connection *conn)
  2 F   f    accept_the_connection  src/connection.c
               int accept_the_connection(connection *conn)
Type number and <Enter> (empty cancels):

我必须输入 1 或 2 才能跳转到定义。

如何让vim直接跳转?

更新 1:

看来是我环境的问题

所以我有一个安装了 VirtualBox 的 Mac 主机,还有一个 CentOS 客户机。 我在 CentOS 环境中开发。

然后我在 Mac 和 CentOS 之间创建了一个共享文件夹:

[Mac]/Users/sato/Dropbox/projects/asdf => [Centos] /home/sato/asdf

src/connection.c 在/home/sato/asdf 中

如果我将 asdf 复制到/home/sato/fdsa 然后 ctrl ] 在 vi​​m 中工作

最佳答案

您可以为命令提供一个计数,即1<C-]> ,但这只是一种解决方法。

解决这个问题的正确方法是避免在标签数据库中有两个相同的条目。从您的输出中,无法判断是什么原因造成的。我过去在有备份文件(具有不同的文件扩展名)时遇到过这种情况,或者如果我运行 ctags在层次结构中太高的目录中,因此包含同一库的不同版本。

关于linux - vim ctags,两个相同的条目,不会直接跳转到定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45668591/

相关文章:

R shiny - shiny 应用程序在本地和其他 shiny 服务器上运行良好,但在我的服务器上不起作用。它没有给我错误信息

linux - 无论如何要更改默认的 exec 调用长度?

bash - 运行 bash 脚本的 docker 入口点获取 "permission denied"

python - 将变量从 python 传递到 shell 脚本

linux - 作为 bash 脚本调用时如何替换命令名称?

c++ - 像文件描述符(fstream)一样处理套接字描述符? C++/Linux

linux - 将前 100 个正则表达式匹配的文件名复制到 unix 中的另一个目录

arrays - 如何使用 node.js 将多个 json 对象合并到一个 json 文件中

Python subprocess.check_output 输出与同一命令的 bash 输出不同

linux - 为什么 "expr $n - 1"有效,而 "expr $n -1"无效?