如何指定在何处生成标签文件

Jam*_*nco 5 vim ctags exuberant-ctags

我目前有一个像这样的项目目录

MainProject
|_ProjectA
|   |_src
|      |_file1.cpp
|      |_file2.cpp
|      |_.....
|      |_tags <---tag file generated here  
|_ProjectB
|   |_src
|      |_file3.cpp
|      |_file4.cpp
|      |_.....
       |_tags <---tag file generated here
Run Code Online (Sandbox Code Playgroud)

现在file4.cpp使用file1.cpp中的项目,但是似乎由于它在另一个文件夹中,所以我得到了消息

cstag - tag not found
Run Code Online (Sandbox Code Playgroud)

目前,我进入了ProjectA和ProjectB,并为每个

ctage -R .
Run Code Online (Sandbox Code Playgroud)

结果是在每个项目中生成了哪个标记文件。我的问题是如何指定在哪里生成标记文件。在这种情况下,所有标签文件将彼此相邻,并希望能够解决此问题

rom*_*inl 4

最简单的解决方案是生成一个tags文件:

$ cd MainProject
$ ctags -R .
Run Code Online (Sandbox Code Playgroud)

并告诉 Vim 在查找tags文件时向上递归:

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