第一步先安装git sudo yum install git
第二步安装一个插件管理器的插件 pathogen
mkdir -p ~/.vim/autoload ~/.vim/bundle && curl -LSso ~/.vim/autoload/pathogen.vim https://tpo. pe/pathogen.vim
然后打开 vim ~/.vimrc 输入:
execute pathogen#infect()
syntax on
filetype plugin indent on
解释:可见~/.vim目录下是有两个目录,其中autoload放的是pathogen插件,所谓的插件其实就是一个脚本,当vim启动时,它会自动加载~/.vim/autoload目录下的脚本,由于你~/.vimrc里配置了execute pathogen#infect(),所以它会去自动的执行脚本里这个函数
第三步安装NERDTree:
git clone https://github.com/scrooloose/nerdtree.git ~/.vim/bundle/nerdtree
将NERDTree下载到 ~/.vim/bundle/nerdtree路径下
用vim打开一个文件在命令行模式输入 :NERDTree 就会看到左侧的工作目录树即当前文件夹下有多少东西。
为了方便打开NERDTree,我们可以设置快捷键,打开~/.vimrc,插入如下一行
map :NERDTree
NERDTree的操作很简单,通常是将光标置于一个目录/文件上,通过一个按键来操作
文件相关操作
o : 在光标所在的上一个窗口打开文件,并将光标置于新打开的窗口
go : 预览文件,光标停留在NERDTree窗口中
t : 在新标签中打开文件并激活
gt : 在新标签打开文件,光标留在NERDTree窗口中
i : 水平分割打开文件
gi : 水平分割预览
s : 垂直分割打开文件
gs : 垂直分割预览
目录树相关操作
o : 展开/关闭目录
O : 递归展开目录。慎用,如果目录层级多,打开会很慢
x : 关闭父目录
C : 切换光标所在目录为根目录
u : 切换目录树的根目录为上层目录
U : 切换目录树的根目录为上层目录,并保持旧的目录树的状态
r : 刷新当前目录
R : 刷新当前根目录(这个在新加入文件后会用到)
cd : 切换vim工作目录为光标所在目录(命令模式下:pwd可查看当前工作目录)
第四步安装MinibufExplore: 下面是一行的命令
mkdir -p ~/.vim/bundle/minibufexplorer/plugin && wget “http://www.vim.org/scripts/download_script.php?src_id=3640” -O ~/.vim/bundle/minibufexplorer/plugin/minibufexpl.vim
配置
在~/.vimrc文件中加入如下命令
let g:miniBufExplMaxSize = 2
第五步安装ctags:
sudo yum install ctags 一般都会自带一个
创建索引:在你代码的根目录执行如下命令,会生成一个tags文件 很重要
ctags -R –sort=yes –c++-kinds=+p –fields=+iaS –extra=+q –language-force=C++
第六步安装taglist
taglist是vim的一个插件 可以将代码内的函数、变量等按规律列出来,方便查找
cd ~/.vim/bundle && wget “http://www.vim.org/scripts/download_script.php?src_id=19574” -O taglist.zip && unzip taglist.zip -d taglist
配置
打开~/.vimrc,输入如下内容
let Tlist_Show_One_File=1 ” 只展示一个文件的taglist
let Tlist_Exit_OnlyWindow=1 ” 当taglist是最后以个窗口时自动退出
let Tlist_Use_Right_Window=1 ” 在右边显示taglist窗口
let Tlist_Sort_Type=”name” ” tag按名字排序
打开一个文件,在命令行模式下输入:TlistToggle即可显示taglist窗口,配合NERDTree一起
第七步
OmniCppComplete
这是一个对C++进行语法补全的插件,可以对函数、命名空间、类成员等进行补全,使用起来和绝大多数IDE差不多,不一样的是IDE为你做了很多你不知道的事情,而omni补全需要依赖tags文件,需要你用ctags命令自己生成
cd ~/.vim/bundle && wget “http://www.vim.org/scripts/download_script.php?src_id=7722” -O omnicppcomplete.zip && unzip omnicppcomplete.zip -d omnicppcomplete
配置
打开~/.vimrc文件,输入
filetype plugin indent on
set completeopt=longest,menu
let OmniCpp_NamespaceSearch = 2 ” search namespaces in the current buffer and in included files
let OmniCpp_ShowPrototypeInAbbr = 1 ” 显示函数参数列表
let OmniCpp_MayCompleteScope = 1 ” 输入 :: 后自动补全
let OmniCpp_DefaultNamespaces = [“std”, “_GLIBCXX_STD”]
使用时先生成tags文件及使用:
ctags -R –sort=yes –c++-kinds=+p –fields=+iaS –extra=+q –language-force=C++
第七步:支持STL补全
mkdir -p ~/.vim/tags && cd ~/.vim/tags && wget “http://www.vim.org/scripts/download_script.php?src_id=9178” -O - | tar jxvf -
这样就将STL的源码下载到了~/.vim/tags/cpp_src目录下,我们在该目录下执行ctags命令
ctags -R –sort=yes –c++-kinds=+p –fields=+iaS –extra=+q –language-force=C++
打开~/.vimrc进行如下设置
set tags+=~/.vim/tags/cpp_src/tags
第八步:
安装Supertab:
使用git进行安装是最方便的
cd ~/.vim/bundle && git clone https://github.com/ervandew/supertab.git
由于TAB键被映射成了补全快捷键,也就无法通过TAB键直接输入制表符,这时如果想要输入制表符可以通过ctr+v TAB即可,即先输入ctr+v再输入TAB键,在vim下通过ctl+v可以输入很多不可见字符,比如试试ctr+v ctr+w
装了这么多插件,在配置文件~/.vimrc里也增添了不少内容,最后你的配置文件至少应该包含以下内容
set tags+=~/.vim/tags/cpp_src/tags ” 设置tags搜索路径
syntax on
filetype plugin indent on
map :NERDTree
” pathongen
execute pathogen#infect()
” taglist
let Tlist_Show_One_File=1
let Tlist_Exit_OnlyWindow=1
let Tlist_Use_Right_Window=1
let Tlist_Sort_Type=”name”
” omnicppcomplete
set completeopt=longest,menu
let OmniCpp_NamespaceSearch = 2 ” search namespaces in the current buffer and in included files
let OmniCpp_ShowPrototypeInAbbr = 1 ” 显示函数参数列表
let OmniCpp_MayCompleteScope = 1 ” 输入 :: 后自动补全
let OmniCpp_DefaultNamespaces = [“std”, “_GLIBCXX_STD”]