我希望能够在项目中的任意子目录中启动vim,并让它在项目根目录下搜索tags文件,然后在项目树之外的不相关目录中进行搜索。
例如,假设我有以下内容:
~/projects/foo/bar/baz.c
~/projects/foo/tags
~/some/arbitrary/path/tags我想从bar子目录中打开baz.c,让它向上搜索以查找foo/tags,如果在foo/tags中找不到该符号,则搜索some/arbitrary/path/tags。
现在我知道我可以做到:
set tags=./tags,tags;来完成第一个任务。它显然是分号,它告诉vim搜索到根。但是,以下两项工作均未完成:
set tags=./tags,tags,~/some/arbitrary/path/tags;
set tags=./tags,tags;~/some/arbitrary/path/tags第一个仅查找~/some/arbitrary/path/tags中的符号,而第二个仅查找项目根目录下的标记文件中的符号。
有人知道怎么做吗?我用的是Linux的购买方式。
发布于 2009-12-02 06:08:50
我使用:
set tags=~/.tags
set tags+=~/.vim/tags/cpp
set tags+=~/src/git/gitsrc/tags
" and so on...用于在特定项目的根目录中生成标签:
map <C-F12> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR>我从C++ code completion vim tip改编了这个设置。
发布于 2009-11-17 22:56:05
将代字号替换为到您的家的路径。
发布于 2009-11-17 23:00:22
您的第一个"set tags“选项在Linux中适用。(正如我以前做过的,我只是重新创建了它以确保。)标签选项中可以有许多不同的路径,包括绝对路径和相对路径。但是,在第二个示例中,列表中间有一个分号,这是不正确的。实际上,您不需要任何分号。为了以防万一,我还会将~替换为到您的家的绝对路径,并将分号一起删除。每条路径之间只要有逗号即可。
哦,要在目录中搜索标记文件,您需要"../ tags ",而不是"./tags“。单点表示当前目录,两点表示您所在位置的上一个目录。
https://stackoverflow.com/questions/1749288
复制相似问题