vim进阶之添加ctags和cscope
来源:互联网 发布:ectouch2.0源码分享 编辑:程序博客网 时间:2024/06/05 16:43
你想要一个非常强大的ide吗?除了eclipse,visual studio,android studio等我们就没有选择了吗?这样想就大错特错了,在linux下使用增强功能后的vim,emacs一样能达到eclipse,visual studio,source insight的功能,今天给大家分享下ctags 和cscope的配置和使用
环境:64bit Ubuntu Desktop 12.04 LTS
快捷通道:https://github.com/alexanderkenndy/advancevim
先来看看效果尝尝鲜
下面就开始配置之旅吧
1.配置ctags
ctags的方便之处就在于多文件编辑,文件定位跳转,通过命令生成一个tags文件记录源文件的索引,帮您快速定位代码,它支持的语言非常多,如c,c++,java等。
1.1下载ctags-5.8.tar.gz,
via:https://github.com/alexanderkenndy/advancevim/blob/master/ctags-5.8.tar.gz
another :http://ctags.sourceforge.net
1.2解压安装
$ tar -xf ctags-5.8.tar.gz$ ./configure$ make$ sudo make install
1.3生成索引文件
1.4使用方式进入到源文件所在目录,输入如下命令
$ ctags -R此命令会在当前目录生成一个名为tags的文件,使用vim打开文件,设置生效命令
:set tags=./tags
如果经常在此目录编辑,可以将此命令配置到vimrc中,如下是我的配置:
if has("tags") set tags=tagsendifset autochdir
将光标定位在c/c++中的一个函数或成员变量中,按住Ctrl+] 则跳转到方法的声明处,再次按下Ctrl+t,则又跳回来。
2.配置cscope
cscope说自己就是一个超频的ctags,使用过非常强大,不但分析出哪个函数定义的何处,还能分析出在哪里被调用
2.1下载cscop-15.8a.tar.gz
via :https://github.com/alexanderkenndy/advancevim/blob/master/cscop-15.8a.tar.gz
another:http://cscope.sourceforge.net
2.2解压安装
$ tar -xf cscop-15.8a.tar.gz$ ./configure$ make$ sudo make installTip:
1.如果在make过程中出现 curses.h not found 异常导致make失败,则需要安装libncurses5-dev包,最好连libncursesw5-dev一并安装
2.如果在make过程中出现 fscanner.c 错误,并且伴随着Flex的问题,则需要安装bison和flex,安装方式一样:sudo apt-get install bison flex.
然后在 make clean,然后继续make。
2.3生成索引文件
我关注的是.cc,.h,.cpp文件,所以代码如下
find . -name "*.cc" -o -name "*.h" -o -name "*.cpp" > cscope.filescscope -bkq -i cscope.files
命令执行完毕之后,会生成三个文件,但是有一个文件时我们比较关心的,就是 cscope.out,打开vim,使用命令
:cs add /home/alexanderkenndy/node-v0.10.21/src/cscope.out当然好是要先配置vimrc,如果是通过apt-get install 安装vim的话,默认vimrc是存放在 /etc/vim/下nmap <C-x>s :cs find s <C-R>=expand("<cword>")<CR><CR>nmap <C-x>g :cs find g <C-R>=expand("<cword>")<CR><CR>nmap <C-x>c :cs find c <C-R>=expand("<cword>")<CR><CR>nmap <C-x>t :cs find t <C-R>=expand("<cword>")<CR><CR>nmap <C-x>e :cs find e <C-R>=expand("<cword>")<CR><CR>nmap <C-x>f :cs find f <C-R>=expand("<cfile>")<CR><CR>nmap <C-x>i :cs find i ^<C-R>=eptend("<cfile>")<CR>$<CR>nmap <C-x>d :cs find d <C-R>=expand("<cword>")<CR><CR>
2.4使用方式
使用vim打开文件之后,找到一个你想要查看的方法,输入快捷键:Ctrl-x,然后按下s,则跳转到当前方法的声明处,相当于输入:cs find s 加上方法名
3.配置 TagList 插件
taglist的功能十分强大,可以很方便的浏览源代码,类似于eclipse的outline,列出代码当中定义的局部变量,方法名等,可以通过taglist快速定位到代码指定的位置。
据官网说支持的语言非常多,有java,c++,python,perl,erlang等主流程序设计语言都支持吧。
3.1 插件环境
想要在vim中添加帮助文档,插件,以及语法高亮定义文件,则需要在~/.vim/下创建三个文件夹,分别名为 plugin,doc,syntax,所有的插件都放在plugin下,我的目录结构如下:
3.2下载插件
via :https://github.com/alexanderkenndy/advancevim/tree/master/plugin
another :http://www.vim.org/scripts/script.php?script_id=273
3.3 配置插件
下载放到plugin 目录后,还需要在vimrc中配置如下代码段
let Tlist_Ctags_Cmd='/usr/local/bin/ctags' let Tlist_Show_One_File=1let Tlist_OnlyWindow=1let Tlist_Use_Right_Window=0let Tlist_Sort_Type='name'let Tlist_Exit_OnlyWindow=1let Tlist_Show_Menu=1let Tlist_Max_Submenu_Items=10let Tlist_Max_Tag_length=20let Tlist_Use_SingleClick=0let Tlist_Auto_Open=0let Tlist_Close_On_Select=0let Tlist_File_Fold_Auto_Close=1let Tlist_GainFocus_On_ToggleOpen=0let Tlist_Process_File_Always=1let Tlist_WinHeight=10let Tlist_WinWidth=18let Tlist_Use_Horiz_Window=0nmap tl :TlistToggle<cr>如此则taglist插件就配置好了。
3.4 使用方式
使用vim打开一个源文件,如test.cpp
呼出方式1
:Tlist呼出方式2
如vimrc中配置的,键 tl 已经被我绑定到了TlistToggle这个命令上,非编辑模式下输入 tl 试试,则代码的变量声明,函数名等就列在vim左边啦
4.配置多terminal环境
有的时候希望一边编辑文件,一边操作terminal,但是没有办法,vim模式下只能用:! + command 操作,窗口之间切来切去是不是很烦躁,emacs可以通过 alt+x shell 来创建命令行窗口,现在有了terminator ,vim用户不用发愁了,就可以帮助我们了,下面看下我的效果图尝尝鲜
4.1 安装
安装方式就比较简单了
$ sudo apt-get install terminator
4.2 常用快捷键
Ctrl-Shift-E :竖分屏
Ctrl-Shift-O :横分屏
Ctrl-Tab或Ctrl-Shift-N :在多个屏之间切换
Ctrl-Shift-Left :将可拖拽的bar向左移动(竖分屏)
Ctrl-Shift-Right :将bar向右移动(竖分屏)
Ctrl-Shift-UP : 将bar向上移动(横分屏)
Ctrl-Shift-Down :将bar向下移动(横分屏)
Ctrl-Shift-S :隐藏滚动条
Alt-UP :光标向上移动
Alt-Down :光标向下移动
Alt-Left :光标向左移动
Alt-Right:光标向右移动
Ctrl-Shift-C :复制选中文本
Ctrl-Shift-V :粘贴选中的文本
Ctrl-Shift-X :只显示当前terminal窗口,隐藏其他terminal窗口
Ctrl-Shift-W :关闭当前窗口
Ctrl-Shift-Q :关闭terminal
via :https://github.com/alexanderkenndy/advancevim/blob/master/vimrc
---------------------------------------------------------
持续更新中....
author :alexanderkenndy
create date:2014/6/15
- vim进阶之添加ctags和cscope
- 使用Vim + Cscope/Ctags|Vim,Cscope,Ctags
- cscope、ctags和vim简明使用流程
- vim 和 cscope & ctags 结合使用
- vim配合ctags和cscope生成tag
- VIM快捷更新cscope和ctags
- cscope、ctags和vim简明使用流程
- Vim + Cscope/Ctags
- VIM + CTags/CScope
- Vim + Cscope/Ctags
- vim+ctags+taglist+cscope
- VIM+ctags+cscope用法
- cscope+vim+ctags
- vim + ctags + cscope+taglist
- vi/Vim + Cscope/Ctags
- vim + ctags + cscope
- Vim+Ctags+Cscope配置
- 使用 VIM+Ctags+Cscope
- 程序员面试智力题(二)
- Android开发Tips
- 使用VNC作为Qt-Embedded应用的输出
- 暴力破解法_马与瓦
- 自定义业务对象图标
- vim进阶之添加ctags和cscope
- 通过Qt的VNC方式调试开发板
- awk命令详解
- 最长回文字符串
- vb-ListBox用法2
- 嵌入式系统调试利器insight
- leetcode——twoSum问题
- 设计模式(5)-对象创建型模式-Builder模式
- 软件开发的心得体会