设置复杂CTAGS搜索路径的提示

Rob*_*nes 8 linux vim ctags

我希望能够在我的项目中的任意子目录中启动vim,并让它搜索tags文件的项目根目录,然后搜索项目树外部的不相关目录.

例如,假设我有以下内容:

~/projects/foo/bar/baz.c
~/projects/foo/tags
~/some/arbitrary/path/tags
Run Code Online (Sandbox Code Playgroud)

我想baz.cbar子目录中打开,让它搜索到找到foo/tags然后搜索some/arbitrary/path/tags是否找不到符号foo/tags.

现在我知道我能做到:

set tags=./tags,tags;
Run Code Online (Sandbox Code Playgroud)

完成第一项任务.它显然是分号,告诉vim搜索根.但是,以下两项工作都不是:

set tags=./tags,tags,~/some/arbitrary/path/tags;
set tags=./tags,tags;~/some/arbitrary/path/tags
Run Code Online (Sandbox Code Playgroud)

第一个只找到符号,~/some/arbitrary/path/tags而第二个只在项目根目录的tags文件中找到符号.

有人知道怎么做吗?我在Linux上买路.

Gre*_*con 5

我用:

set tags=~/.tags
set tags+=~/.vim/tags/cpp
set tags+=~/src/git/gitsrc/tags
" and so on...
Run Code Online (Sandbox Code Playgroud)

用于在特定项目的根中生成标记:

map <C-F12> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR>
Run Code Online (Sandbox Code Playgroud)

我从C++代码完成vim提示改编了这个设置.