由于开发时常常使用Ctags进行跳转查询,因此特意写了一个函数用于更新ctags
代码:
"递归查询父文件夹的tags文件,这样在项目的那个文件夹当中就都可以访问同一个tags文件了
set tags=tags;
"更新ctags,找寻父文件夹原有tags文件
function UpdateCtags()
let curdir=getcwd()
while !filereadable("./tags")
cd ..
if getcwd() == "/"
break
endif
endwhile
if filewritable("./tags")
!ctags -R --c++-types=+px --excmd=pattern --exclude=Makefile --exclude=.
endif
execute ":cd " . curdir
endfunction
“映射键盘上的F10对应更新tags
nmap <F10> :call UpdateCtags()<CR>
|
自己用着挺爽……嘿嘿
http://csslayer.blogbus.com/logs/56495074.html
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
在~/.vimrc中加入
function! UPDATE_TAGS()
let _f_ = expand("%:p")
let _cmd_ = '"ctags -a -f /dvr/tags --c++-kinds=+p --fields=+iaS --extra=+q " ' . '"' . _f_ . '"'
let _resp = system(_cmd_)
unlet _cmd_
unlet _f_
unlet _resp
endfunction
autocmd BufWrite *.cpp,*.h,*.c call UPDATE_TAGS()
或者这个vim7.0的插件,又或者装这个AutoTag插件,要求Vim6,且编译时要支持python。
http://blog.163.com/lgh_2002/blog/static/4401752620115132456450/
由于开发时常常使用Ctags进行跳转查询,因此特意写了一个函数用于更新ctags代码:"递归查询父文件夹的tags文件,这样在项目的那个文件夹当中就都可以访问同一个tags文件了set tags=tags;"更新ctags,找寻父文件夹原有tags文件function UpdateCtags() let curdir=getcwd() whi
g
tags
优点:支持增量
更新
, 方便快速动态
更新
, 使用key-value的数据库查询更高效, 不仅可查询
函数
定义在哪,也可查询谁调用了
函数
。
安装g
tags
(GNU global)
下载最新的版本,比如global-6.6.6.tar.gz
tar -xvf global-6.6.6.tar.gz
cd global-6.6.6/
./configure
sudo make install
g
tags
使用方法为命令行cd到代码根目录,执行g
tags
。执行成功后产生GP
如果你现在对
ctags
和cscope等并不了解, 那么请先花上大约至少一天上的时间认真研究他们的基本用法. 等到对他们有了基本的了解之后再回来看这里的说明你将会有更大的收获.
首先要说的是
ctags
是一个linux上很普遍的源码分析工具, 可以将代码
中
的
函数
变量等定义的位置记录在一个名称为
tags
的文件. 类似于数据库记录功能.
tags
文件的产出最简单的方法是在需要生成
tags
的