我使用 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 ]
在 vim 中工作
最佳答案
您可以为命令提供一个计数,即1<C-]>
,但这只是一种解决方法。
解决这个问题的正确方法是避免在标签数据库中有两个相同的条目。从您的输出中,无法判断是什么原因造成的。我过去在有备份文件(具有不同的文件扩展名)时遇到过这种情况,或者如果我运行 ctags
在层次结构中太高的目录中,因此包含同一库的不同版本。
关于linux - vim ctags,两个相同的条目,不会直接跳转到定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45668591/