今天我在尝试在Vim上设置(exuberant)ctags,但是遇到了无法正常工作的困难。我在命令行上使用以下命令生成我的ctags文件:
cd myproj
ctags -R
这会将tags文件放在myproj根目录下。然而,只有在我处理位于根目录下的源代码时,Vim才似乎从这个tags文件中读取。当我进入更深的目录时,如果我尝试使用<C-]>
跳转到标签,我会得到:
E433: No tags file
E426: tag not found: MyClassName
我验证过 MyClassName 在 tags 文件中有标签,只是 Vim 没有看到它。请问如何配置 Vim 引用根目录的 tags 文件?
谢谢。
set tags+=tags;/
。 - Henry Hutags;/
这个表示感到困惑,那么;/
后缀会指示 vim 在包含 tags 文件的目录向上搜索,直到停止目录为止(在这个例子中是 /)。如果你想要使用你的 home 目录作为停止目录,可以使用set tags+=tags;~
或set tags+=tags;$HOME
。或者你也可以使用项目树的顶级目录作为停止目录。(请参考:help file-searching
以了解分号的用法。)另外,请注意搜索 tags 文件时受 autochdir 的影响。我在我的 .vimrc 文件中使用的设置是set tags=./tags,./TAGS,tags;~,TAGS;~
。 - Andrej Panjkovset tags=./tags;/
。 - xtianset tags=tags;/
可以正常工作...但是我在:help
文档中找不到任何关于这个机制的参考。:help tags-option
中也没有任何信息。在help.txt
和tagsrch.txt
帮助文件中搜索;/
也没有结果。 - Kaz