VIM快捷更新cscope和ctags

主要就是记录一下linux下vim关于cscope更新数据库的配置。

平时使用cscope/ctags的时候查看代码还是比较方便的,但是编辑文件的时候就比较鸡肋了,原因在于cscope和ctags没有集成自动更新,其实这些在配置文件中添加简单的几句话就能实现了,笔者经过测试,认为在大项目中cscope增量更新的方式速度还是可以接受的(原理是不是搜索目录下文件的时间戳?没研究过)。


整个过程其实就是用了几条简单的shell命令,下面看看我的vim跟cscope相关的配置

if has("cscope") && filereadable("/usr/bin/cscope")
   set csprg=/usr/bin/cscope
   set csto=0
   set cst
   set nocsverb
   " 添加cscope数据库
   if filereadable("cscope.out")
      cs add cscope.out
   " 添加环境变量中的cscope数据库
   elseif $CSCOPE_DB != ""
      cs add $CSCOPE_DB
   endif
   set csverb
endif

" 适用于cscope的常规键位映射
    nmap <C-@>s :cs find s <C-R>=expand("<cword>")<CR><CR>
    nmap <C-@>g :cs find g <C-R>=expand("<cword>")<CR><CR>
    nmap <C-@>c :cs find c <C-R>=expand("<cword>")<CR><CR>
    nmap <C-@>t :cs find t <C-R>=expand("<cword>")<CR><CR>
    nmap <C-@>e :cs find e <C-R>=expand("<cword>")<CR><CR>
    nmap <C-@>f :cs find f <C-R>=expand("<cfile>")<CR><CR>
    nmap <C-@>i :cs find i <C-R>=expand("<cfile>")<CR><CR>
    nmap <C-@>d :cs find d <C-R>=expand("<cword>")<CR><CR>

" 笔者自己添加的键位映射

" 关闭数据库连接
    nmap <C-@>k :cs kill cscope.out <CR>

" 打开数据库连接
    nmap <C-@>o :cs add cscope.out <CR>

" 保存文件并且更新数据库
    nmap <C-@>w :w<CR>:!cscope -bqR<CR><CR>

" 保存文件并且更新ctags
    nmap <C-@>u :w<CR>:!ctags -R<CR><CR>

" 保存文件更新全部
    nmap <C-@>a <C-@>w <C-@>u


最后提一下,cscope和ctags的局限性也比较明显,但是配置起来是非常方便的,所以笔者的各个工作机上都使用了这些设置。

如果是长期使用的工作环境,建议配置一下clang编译器,该编译器的词法分析功能开放得比较好,可以到网上搜索一些相应的vimscript,也许对你有用。只是clang安装起来比较麻烦而且依赖项比较多。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值