您的位置:首页 > 运维架构 > Linux

Centos将vim设置成为C++编辑器

2018-03-16 14:29 519 查看
第一步先安装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”]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: