linux – 如何在大型代码库中运行ctags?

假设我有一个代码目录结构如下:

/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’设置或不断自己切换目录,那么显然不会找到标签.

相关文章

Linux中的ARP防火墙主要用于防御ARP欺骗攻击,其效果取决于多...
insmod和modprobe加-f参数导致Invalid module format错误 这...
将ArchLinux安装到U盘 几个月前入门Arch的时候上网搜了不少安...
1、安装Apache。 1)执行如下命令,安装Apache服务及其扩展包...
一、先说一下用ansible批量采集机器信息的实现办法: 1、先把...
安装配置 1. 安装vsftpd 检查是否安装了vsftpd # rpm -qa | ...