更改到该目录时,如何从目录自动加载标记文件?

时间:2013-10-12 05:20:55

标签: vim ctags

对于我的每个C ++项目,我在源树的根目录中保留一个标记文件。当我更改它时,如何让Vim自动加载该目录的标记文件?

e.g。我的目录布局如下所示:

~/dev/project1/tags
~/dev/project2/tags

我启动Vim(来自GUI),当前工作目录默认为$ HOME。我输入:cd ~/dev/project/,Vim应加载~/dev/project/tags。明天我可能想在project2上工作,所以我希望Vim在我cd之后加载该项目的标签。

如何做到这一点?

2 个答案:

答案 0 :(得分:10)

只需将以下行添加到~/.vimrc

即可
set tags=./tags;,tags;

这意味着“在当前文件的目录中查找tags文件,然后向上直到/并在工作目录中,然后向上直到/”。

换句话说,无论您在项目中的哪个位置,Vim都会为项目选择正确的tags

:help tags是一本很好的阅读,它可以让你省去在这里发帖的麻烦。

注意:该行的神奇部分是“向上搜索”的;。你可以给Vim一个这样的上限:;$HOME

答案 1 :(得分:1)

试试easytag,有一个选项'g:easytags_dynamic_files'可以处理它。