你想要一个非常强大的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=tags endif set 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 install
Tip:
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.files cscope -bkq -i cscope.files
命令执行完毕之后,会生成三个文件,但是有一个文件时我们比较关心的,就是 cscope.out,打开vim,使用命令
当然好是要先配置vimrc,如果是通过apt-get install 安装vim的话,默认vimrc是存放在 /etc/vim/下:cs add /home/alexanderkenndy/node-v0.10.21/src/cscope.out
nmap
s :cs find s =expand(" ") nmap g :cs find g =expand(" ") nmap c :cs find c =expand(" ") nmap t :cs find t =expand(" ") nmap e :cs find e =expand(" ") nmap f :cs find f =expand(" ") nmap i :cs find i ^ =eptend(" ") $ nmap d :cs find d =expand(" ")
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=1 let Tlist_OnlyWindow=1 let Tlist_Use_Right_Window=0 let Tlist_Sort_Type='name' let Tlist_Exit_OnlyWindow=1 let Tlist_Show_Menu=1 let Tlist_Max_Submenu_Items=10 let Tlist_Max_Tag_length=20 let Tlist_Use_SingleClick=0 let Tlist_Auto_Open=0 let Tlist_Close_On_Select=0 let Tlist_File_Fold_Auto_Close=1 let Tlist_GainFocus_On_ToggleOpen=0 let Tlist_Process_File_Always=1 let Tlist_WinHeight=10 let Tlist_WinWidth=18 let Tlist_Use_Horiz_Window=0 nmap tl :TlistToggle
如此则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
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