Linux下基于vim的开发环境搭建,其中包括:Ctags,Taglist,Cscope,SuperTab,OmniCppComplete,Winmanager,NERDTree和MiniBufExplorer等组件。
Vim存在多个配置文件vimrc,
(1)/etc/vimrc,此文件影响整个系统的Vim
(2)~/.vimrc,此文件只影响本用户的Vim。
由于~/.vimrc文件中的配置会覆盖/etc/vimrc中的配置。这里我们只修改~/.vimrc文件。
1、安装使用Ctags
(1)使用apt-get安装:sudo apt-get install ctags
(2)基本功能使用方法1)ctags -R * “-R”表示递归创建,也就包括源代码根目录(当前目录)下的所有子目录。“*”表示所有文件。这条命令会在当前目录下产生一个“tags”文件,当用户在当前目录中运行vi时,会自动载入此tags文件
2)vim -t tag (注:tag为你所要查找的变量或函数名)
基于vim的编辑模式下操作:
3)Ctrl+] 跳转到光标所在函数/变量的定义的位置,如有多个则会出现列表。 (g Ctrl+] 跨目录跳转)
4)Ctrl+t 回到跳转前的位置
基于vim的命令模式下操作
5)ts (tags list)
6)tn (tags next)
5)tp (tags preview)
(3)在~/.vimrc下添加: set tags=tags; (如果不存在~/.vimrc文件,可自行添加)
2、安装使用Taglist
Taglist是以tags文件为基础,需要ctags生成tags文件。
下载Taglist,地址是http://sourceforge.net/projects/vim-taglist/files/vim-taglist/
(1)解压taglist_45.zip,可以看到有两个目录doc和plugin,结构如下
taglist_45 | |-------- doc | \-------- taglist.txt | \-------- plugin \-------- taglist.vim
(2)执行下列shell命令,即安装完成
cp doc/taglist.txt /usr/share/vim/vim74/doc/
cp plugin/taglist.vim /usr/share/vim/vim74/plugin/
(3)在~/.vimrc里添加下面两句
let Tlist_Show_One_File=1
let Tlist_Exit_OnlyWindow=1
(4)用Vim打开源码文件,以命令模式执行Tlist,即可启用Taglist插件,<F1>可以查看taglist的帮助信息
『基本功能使用方法』
在Vim命令行下运行":Tlist"就可以打开Taglist窗口,再次运行":Tlist"则关闭。
左右窗口切换Ctrl+ww
在taglist窗口中,可以使用下面的快捷键:
o 在一个新打开的窗口中显示光标下tag
<Space> 显示光标下tag的原型定义
u 更新taglist窗口中的tag
s 更改排序方式,在按名字排序和按出现顺序排序间切换
x taglist窗口放大和缩小,方便查看较长的tag
+ 打开一个折叠,同zo
- 将tag折叠起来,同zc
* 打开所有的折叠,同zR
= 将所有tag折叠起来,同zM
[[ 跳到前一个文件
]] 跳到后一个文件
q 关闭taglist窗口
<F1> 显示帮助
但是!这些大部分可以被鼠标取代!!快捷键是浮云~~
3、cscope插件
(1)可以对函数以及部分类型定义进行跳转
(2)安装配置
sudo apt-get install cscope
(3)在终端下,转到你源码的所在目录然后
$cscope -Rbkq <回车>
说明一下参数:
R 表示把所有子目录里的文件也建立索引
b 表示cscope不启动自带的用户界面,而仅仅建立符号数据库
q 生成cscope.in.out和cscope.po.out文件,加快cscope的索引速度
k 在生成索引文件时,不搜索/usr/include目录
之后会在当前目录生成几个文件, cscope.in.out和cscope.po.out文件,cscope.out
vim的normal模式下输入
:cs add cscope.out
不会吧,每次都要输入这些命令,烦死人了,有没有捷径呢?想偷懒总有人找到方法的,
sudo gedit ~/.vimrc 然后在该文件下添加如下代码:
if filereadable("cscope.out")
cs add cscope.out
endif
这样每次打开vim就可以直接使用cscope了。
附常用的命令:
:cs find s ---- 查找C语言符号,即查找函数名、宏、枚举值等出现的地方
:cs find g ---- 查找函数、宏、枚举等定义的位置,类似ctags所提供的功能
:cs find d ---- 查找本函数调用的函数:cs find c ---- 查找调用本函数的函数
:cs find t: ---- 查找指定的字符串
:cs find e ---- 查找egrep模式,相当于egrep功能,但查找速度快多了
:cs find f ---- 查找并打开文件,类似vim的find功能
:cs find i ---- 查找包含本文件的文
Ctrl+]将跳到光标所在变量或函数的定义处 Ctrl+T返回
更多帮助在vim末行命令模式下输入cs 或 cscope获得帮助信息