vim 解决tags递归查询问题

今天在vim下配置了两个插件,分别是exuberant-ctags 跟cscope。这两个插件主要是用来实现类、方法查询跟跳转。至于它们如何安装跟使用,网上教程一大堆,我也是按着别的大神教程一步步来的。这里我主要是记录下关于tags标签查询的问题。

我们知道,以上的两个插件的工作,主要依赖的就是tags这个标签文件(当然他们各自有自己的标签文件),这个文件是我们手动生成的,而且往往是在我们的根目录下,如果我们不做处理,会发现,我们离开这个目录以后,这两个插件就没法工作了。而我们又不可能在一个目录的每一个子目录都生成这样一个文件,所以我参照了网上的方法,实现tags文件递归查询使用。也就是说,如果当前目录下没有可用的tags文件,他会往上级跟下级目录查询有没有可用的tags。具体方法如下

以下内容参考

http://www.cnblogs.com/pangchol/p/3455662.html

1.我们可以在.vimrc中配置如下内容,实现exuberant-ctgs 递归查询

#set autochdir
set tags=./tags,./../tags,./../../tags,./../../../tags,./../../../../tags,./../../../../../tags,./../../../../../../tags,./../../../../../../../tags,./../../../../../../../../tags,./../../../../../../../../../tags,./../../../../../../../../../../tags,./../../../../../../../../../../../tags,./../../../../../../../../../../../../tags,./../../../../../../../../../../../../../tags,./../../../../../../../../../../../../../../tags,./*/tags

上面两条命令,第一条,网上说的是能够自动往子目录里查询,不过,我加了这条语句以后,当跳转到某个方法调用的地方的时候,提示那个java类不存在,所以我把这句注释掉了。直接用第二条命令就行了

第二条命令,就是说设置tags取值,上面那一大串,就是说如果第一个逗号之前的内容没找到,就会往上找,依次网上找,一个逗号代表一层目录;最后一条才是往所有子目录下找

增加了这两条命令以后,我们的tags文件,无论是在子目录,还是父目录,都可以使用exuberant-ctags了。

2.同样的,cscope也是存在这个ctags查询问题。它处理的方式,我是参照参考内容,直接使用的插件

插件下载地址

http://www.vim.org/scripts/script.php?script_id=157

这个插件其实就是一个.vim文件,我们只需要把这个.vim文件拷贝到.vim/plugin下就行了

原文地址:https://www.cnblogs.com/zhangshuli-1989/p/hq_tags_151020193.html