4

对于我的每个 C++ 项目,我都会在源代码树的根目录中保留一个标记文件。当我切换到该目录时,如何让 Vim 自动加载该目录的标记文件?

例如,我的目录布局如下所示:

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

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

如何才能做到这一点?

4

2 回答 2

12

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

set tags=./tags;,tags;

它的意思是“tags在当前文件的目录中查找文件,然后向上直到/在工作目录中,然后向上直到/”。

换句话说,无论您在项目中的哪个位置,Vim 都会tags为该项目挑选合适的。

:help tags是一本好书,它会为您省去在这里发布问题的麻烦。

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

于 2013-10-12T06:49:24.963 回答
1

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

于 2013-10-12T05:53:35.653 回答