vim之于程序员--强大的vim结合ctags的使用

1.安装ctags
    1)到http://ctags.sf.net下载最新的ctags
    2)使用apt-get 安装
$sudo apt-get install exuberant-ctags
2.使用ctags生成tags,
$ctags *.c生成所有C文件的tags,生成的文件就叫tags
$ctags -R .递归生成所有目录下的tags。
3.在vim中使用ctags
    1):tag startlist
就会跳转到startlist定义处,即使它在其他文件里。
    2)Ctrl-]
这是一种更加快速的搜索方法,按下Ctrl-]后,它会取当前光标指向的word作为tag,然后跳转到定义处。当你查看函数时,发现它调用了另一个函数,那么你就可以快速的定位它。
    3):tags
列出到目前位置,你用到过的tags
    4)Ctrl-t
当然,你能够一直往前跳当然很好了,但是看完这个函数想回去怎么办?那就是Ctrl-t了,
    5):tag
将会跳转到序列的最后一个地方,也就是最深的一层,当你在回跳后可以一下就跳回来。
    6)Ctrl-t和:tag都可以加一个数字指定步长。
    7):stag tohere
将会在一个split窗口中显示另一个tag,即使它在当前文件内,因为当前文件可能很长,所以如果一下子跳开,我们可能就不能看到刚才正在浏览的地方,所以另外打开一个分隔窗口来显示。
    8)Ctrl-w ]
会分隔当前窗口并跳转到光标下的tag,对应于前面的Ctrl-]
    9):set tags=./tags,./../tags,...
使用多个tags文件
如果源文件位于多个目录下,你可以为每个目录建立一个tags文件,vim会只在当前tags目录下跳转(如果多个目录中有重名的tag的话,就很有用了),但是并不是我们当前所处的位置就不想去查看其他目录的tag,这是就需要
    :set tags=~/proj/*/tags
    10)同名tag
:tag    会跳转到第一个符合条件的,本文件优先。
:tnext/:tn    轮转到下一个同名tag
:tp    跳转到上一个同名tag
:tselect tagname 如果有很多tag都叫tagname,那么使用tnext就太没有生产力了,这是需要使用tselect tagname,vim会显示一个列表,然后你输入数字即可。
    11)tag补全
这个没有什么好说的,如同bash补全一样,而且还可使用搜索:tag /block    会查找tagname中包含block的tag,而且你也可以不必换回车,直接按Tab,会自动不全,这个不全更厉害,它是搜索的,而不是说你必须输入tag的开头部分。
    12):tselect /^write_
注意上面使用的是:tselect命令,而且使用了搜索匹配开头
    13)tags的浏览器
*首先建立一个标识符列表
$ctags --c-types=f -f functions *.c
*启动VIM
:vsplit functions
    14)预览函数
当在调用某个函数的时候可能记不清它的参数,这是需要看一下,但是使用:tag tagname的话,光标就跑过去了,这是就需要使用预览技术了。
:ptag tagname    打开一个预览窗口,而且光标保持不便
:pclose    看完了,当然就要关闭了,而不是使用快捷键去切换窗口关闭窗口。
    15)在代码块中移动
[{    跳转到代码块的开头
]}    代码块结尾
    16)跳转到变量定义
[i    会显示当前变量定义的行
[<Tab>    会跳转到匹配的行
    17)[i会搜索文件include的文件,以及递归,如果只想限制在当前文件使用gd(goto definition)命令

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值