转自https://blog.csdn.net/scaleqiao/article/details/44278719#
1.查看是否安装vim
在命令行输入“vi”之后按Tab键,可以看到系统中是否安装了vim,一般来说系统安装的时候会自带vi以及vim.tiny,因此需要安装vim。
2.vim的安装
sudo apt-get install vim-gtk
3.vim的配置
sudo gedit /etc/vim/vimrc
打开vim的配置文件,在结尾处加上
set nu "在左侧行号
set tabstop "tab 长度设置为 4
set nobackup "覆盖文件时不备份
set cursorline "突出显示当前行
set ruler "在右下角显示光标位置的状态行
set autoindent "自动缩进
使vim的编译界面更加友好~
1.cscope的安装
这里提供两种安装方法:
sudo apt-get install cscope
或者:在http://sourceforge.net/projects/cscope/files/上下载cscope的最新源码,解压之编译安装。
./configure
make
make install
2.生成索引文件
在需要进行cscope编译的根目录下,执行
find . -name "*.[h|c]" > cscope.files
cscope -bkq -i cscope.files
命令结束,会发现根目录下乘车名为cscope.out的文件。执行cscope -d
可以退出ccscope
3.在vim的配置文件中加入关于cscope的配置。
如果你不想配置cscope,可以下载cscope_maps.vim,并加入到vim的plugin目录,地址:/usr/share/vim/addons/plugin。
也可以直接选取需要的配置,加到.vimrc中
4.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 ---- 查找包含本文件的文
1.安装
可以通过 sudo apt-get install ctags
安装,也可以自己下载源码编译。源码
2.使用ctags为源码生成tag。在源码根目录下执行ctags -R
但是因为之后vim中的某些插件(omnicppcomplete和echofunc)是基于tag但又对tag有特殊要求,所以在生成tag的时候,我们需要额外的定制:
ctags -R --c++-kinds=+p --fields=+iaS --extra=+q
–c+±kinds=+ps是为c/c+语言添加函数原型信息。–fields=+iaS是为标签添加继承信息(inheritance),访问控制信息(access)和函数特征(Signature)如参数表或原型等。–extra=+q是为类成员添加标签。
下载地址,解压之后讲taglist.vim
拷贝到~/.vim/plugin/
下,把taglist.txt
拷贝到~/.vim/doc/
目录下,即完成安装
然后在~/.vimrc文件中设置一下变量
set tags=tags "设置tags的存放目录
let Tlist_Show_One_File=1 "只允许taglist显示一个文件的信息
let Tlist_Exit_onlyWindow=1 "当显示taglist信息的窗口是最后一个时,退出vim
let Tlist_Process_File_Always=1 "时时更新taglist
下载omnicppcomplete
该插件的主要功能:补全结构体的成员以及类成员,并在一个窗口中对你选中的对象有一些解释。
安装方法,在~/.vim目录下解开压缩包即可
下载echofunc放入~/.vim/plugin/目录下
解决ominicppcomplete不能补全函数的问题。在.vimrc中定义两个快捷键来切换函数的不同定义
let g:EchoFuncKeyNext=''
let g:EchoFuncKeyPrev=''
下载minibufexpl放入~/.vim/plugin/目录下就可以直接使用,也可以在.vimrc文件中打开一些功能设置、
let g:miniBufExplMapWindowNavVim = 1
let g:miniBufExplMapWindowNavArrows = 1
let g:miniBufExplMapCTabSwitchBufs = 1
let g:miniBufExplModSelTarget = 1
DONE