对于我的每个C ++项目,我在源树的根目录中保留一个标记文件。当我更改它时,如何让Vim自动加载该目录的标记文件?
e.g。我的目录布局如下所示:
~/dev/project1/tags
~/dev/project2/tags
我启动Vim(来自GUI),当前工作目录默认为$ HOME。我输入:cd ~/dev/project/
,Vim应加载~/dev/project/tags
。明天我可能想在project2上工作,所以我希望Vim在我cd
之后加载该项目的标签。
如何做到这一点?
答案 0 :(得分:10)
只需将以下行添加到~/.vimrc
:
set tags=./tags;,tags;
这意味着“在当前文件的目录中查找tags
文件,然后向上直到/
并在工作目录中,然后向上直到/
”。
换句话说,无论您在项目中的哪个位置,Vim都会为项目选择正确的tags
。
:help tags
是一本很好的阅读,它可以让你省去在这里发帖的麻烦。
注意:该行的神奇部分是“向上搜索”的;
。你可以给Vim一个这样的上限:;$HOME
。
答案 1 :(得分:1)
试试easytag,有一个选项'g:easytags_dynamic_files'可以处理它。