Vim优秀插件推荐
Vim的安装
-
Mac平台:
安装包管理工具homebrew
ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
通过brew安装vim
brew install vim
-
Centos平台:
yum install vim
spf13
spf13是一个vim插件合集,包括vim插件管理工具vundle,集成了vim界最受欢迎的一些插件。
安装
curl https://j.mp/spf13-vim3 -L > spf13-vim.sh && sh spf13-vim.sh
插件管理
#添加插件
echo Bundle \'spf13/vim-colors\' >> ~/.vimrc.bundles.local
#然后进入vim,在正常模式下输入,等待安装完成
:BundleInstall
========================================================
#删除插件
echo UnBundle \'AutoClose\' >> ~/.vimrc.bundles.local
#然后进入vim,在正常模式下输入,完成删除
:BundleClean!
-
Undotree
使用
,u
查看近期文件操作记录 -
NERDTree
使用
,e
查看文件目录信息,或者ctrl+e
,使用ctrl+w+w
切换文件 -
ctrlp
快速打开文件,使用
ctrl+p
搜索文件 -
Surround
这个插件用来操作闭合标签。新手快键键形如:
cs"<p>
。例如在代码"hello"
中输入cs"<p>
,则会把双引号替换为<p>标签。 -
NERDCommenter
注释插件。新手快键键
,c<space>
,注释光标所在代码。 -
neocomplete
自动完成插件。无需快捷键,在使用中自动会提示。如果需要代码片段补全,则使用
ctrl+k
。例如输入for
后按下ctrl+k
则提示代码块,按tab
进行跳进。
ctags
-
Mac安装:
brew install ctags
-
Centos安装:
yum install ctags
创建索引:在你代码的根目录执行如下命令,会生成一个tags文件,此时在代码根目录下打开一个文件(vim默认只加载工作目录下的tags文件),将光标置于一个函数或结构体名字上,按ctr+]
即可跳转到该名称的定义处,如果出现多个选项,可以输入编号选择对应跳转的地方,按ctr+o
可回到光标之前的位置
ctags -R --sort=yes --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++
taglist
功能
将代码内的函数、变量等按规矩列出来,方便查找
安装
cd ~/.vim/bundle && wget "http://www.vim.org/scripts/download_script.php?src_id=19574" -O taglist.zip && unzip taglist.zip -d taglist
这样就生成了~/.vim/bundle/taglist目录,该目录的结构为
taglist
├── doc
│ └── taglist.txt
└── plugin
└── taglist.vim
配置 打开~/.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按名字排序
这几行配置看名字就能知道什么意思,引号后边是说明,在vim配置文件里,双引号代表注释,类似于C语言里的/
测试
打开一个文件,在命令行模式下输入:TlistToggle
即可显示taglist窗口
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
该命令会生成~/.vim/bundle/omnicppcomplete目录,目录结构为
├── after
│ └── ftplugin
│ ├── cpp.vim
│ └── c.vim
├── autoload
│ └── omni
│ ├── common
│ │ ├── debug.vim
│ │ └── utils.vim
│ └── cpp
│ ├── complete.vim
│ ├── includes.vim
│ ├── items.vim
│ ├── maycomplete.vim
│ ├── namespaces.vim
│ ├── settings.vim
│ ├── tokenizer.vim
│ └── utils.vim
└── doc
└── omnicppcomplete.txt
打开vim,在命令行模式下输入:helptags ~/.vim/bundle/omnicppcomplete/doc
即可加载说明文档,输入:help omnicppcomplete
查看说明文档
对STL补全 上面的方式只能对自己的代码进行补全,是当我们要使用其它库比如STL甚至是第三方库时就无法补全,原因很简单,我们只对自己的代码建立了tags文件,想要对其它库进行补全,就必须对它们的源代码建立tags文件,所幸的是vim的插件编写者们早已解决了这个需求,并且他们专门针对STL头文件进行了修改,以便能更好的适应omni的补全,首先下载STL源代码,地址为http://www.vim.org/scripts/script.php?script_id=2358,可通过如下命令下载并解压
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++
这样就生成了~/.vim/tags/cpp_src/tags这个文件,然后打开~/.vimrc进行如下设置
set tags+=~/.vim/tags/cpp_src/tags
该命令是设置tags文件的搜索路径,默认只有vim工作目录的tags文件,这样设置之后就会同时加载指定目录的tags文件,你可以在后面添加更多其它第三方库的tags文件,现在对STL的补全效果如下
在生成tags文件的基础山,按ctr+x ctr+o
就可以自动补全