假设我有一个代码目录结构如下:
/top
/second
/core
a.pl
b.pl
c.pl
/common
d.pl
e.pl
/util
f.pl
g.pl
h.pl
我应该在哪里运行ctags,以便我可以通过vi跳转到函数定义?
比如我有:
/dir
/perl
a.pl
我在dir中运行命令ctags -R perl但在a.pl中我无法跳转到同一文件中存在的函数定义.
如果我做了ctags -R.在它工作的perl目录中.
所以我无法理解这种模式.我应该在core,common,util中运行ctags吗?如果我的代码库很大怎么办?我真的需要在每个目录中运行它吗?
最佳答案
通常,您只需使用位于项目根目录中的一个标记文件.
例如,要标记位于〜/ src / vim-7.3中的整个Vim自己的源代码,您可以导航到该目录并在那里生成标记文件.
$cd ~/src/vim-7.3
$ctags -R
就这样.
当然,你可以在Vim内部做同样的事情.启动Vim然后键入:
:cd ~/src/vim-7.3
:!ctags -R
检查您是否拥有正确的“标签”设置.默认为./tags,tags,这意味着Vim将在当前目录中查找标签文件.
请务必完整阅读:h 'tags'
.您可以通过提供包含通配符的模式来指示Vim在目录树的深处查找标记文件.
还有一件事:为了使这种方法起作用,Vim当前的工作目录必须始终保持在根目录下.如果您有一些选项,例如’autochdir’设置或不断自己切换目录,那么显然不会找到标签.