我今天正试图在Vim上设置(旺盛)ctags并且很难让它正常工作.我在命令行上使用以下命令生成我的ctags文件:
cd myproj
ctags -R
Run Code Online (Sandbox Code Playgroud)
这会将标记文件放在myproj根目录中.但是,当我处理驻留在root中的源时,Vim似乎只读取此标记文件.当我导航到更深层的目录时,如果我尝试使用跳转到标签<C-]>,我得到:
E433: No tags file
E426: tag not found: MyClassName
Run Code Online (Sandbox Code Playgroud)
我已经验证了MyClassName在tags文件中确实有一个标记,只是Vim没有看到它.有人可以解释如何配置Vim引用根的标签文件?
谢谢.
Amj*_*ith 120
将此添加到.vimrc文件 set tags=tags;/
这将检查当前文件夹中的标签文件,并继续向上一个目录一直到根文件夹.
因此,您可以在项目的任何子文件夹中,它将能够找到标签文件.
Xav*_* T. 15
有一个选项告诉Vim在哪里查找标签文件.
我使用以下配置:
" search first in current directory then file directory for tag file
set tags=tags,./tags
Run Code Online (Sandbox Code Playgroud)
从帮助中提取:
当标记文件名以"./"开头时,"." 被替换为当前文件的路径.这使得可以在当前文件所在的目录中使用标记文件(无论当前目录是什么).使用"./"的想法是你可以定义首先搜索哪个标记文件:在当前目录("tags,./ tags")或当前文件的目录("./tags,tags")中.
例如:: set tags =./ tags,tags,/ home/user/commontags
我将当前的工作目录保存在tags生成文件的顶层项目目录中.
使用:pwd然后:cd myproj(在Vim内)转到包含标记文件的目录.
有关:help tags-option标记路径的更多信息,请参阅.
您的问题可能是您在错误的目录中,或者您的tags选项未正确设置.