Tank0317

vim学习笔记(四):插件

28 May 2017

我们可以通过给vim安装不同的插件来丰富vim的功能。比如常用的插件有代码补全插件YouCompleteMe文件浏览插件NERDTree主题插件Molokai以及管理插件的插件Vundle

今天我就详细的介绍下常用插件安装的一个详细过程。因为现在的电脑是公司的,最后难免要换电脑,到时候还要重新配置一遍,所以今天先把这个过程记录一下。又公司只给配了Lenovo,所以这里主要介绍windows下vim插件的安装过程。linux和mac下的大致过程是一样,也可以参考。

首先明确下windows下vim配置文件的存放位置。通过:version命令可以看到

vim veriosn
Fig.1 - windows下vimrc存放位置

windows下vimrc存放位置为$HOME\_vimrc,其他插件等配置文件可以放在$HOME\vimfiles文件夹下。

vundle

首先安装一个管理插件的插件vundle,有了它之后,我们安装插件的过程会非常方便。(其实因为我是一开始就学着用vundle安装插件,所以不用vundle怎么安装插件我并不是很清楚。)

https://github.com/VundleVim/Vundle.vim/wiki/Vundle-for-Windows

上面是vundle给的windows下的安装教程。首先我们需要在windows下先安装git我是链接),因为vim的插件几乎都是通过git下载。然后上面的教程里说还需要单独安装curl,不过我在安装好的gitbash里通过curl --version验证发现我的gitbash已经有了curl所以我跳过了curl的安装。

然后在gitbash里通过git下载vundle到vimfiles文件夹,

git clone https://github.com/VundleVim/Vundle.vim.git ~/vimfiles/bundle/Vundle.vim

之后需要按照quick start中的配置信息保存到vimrc文件。需要注意的是,windows环境下还需要做如下修改:

vundle配置信息修改
Fig.2 - vundle配置信息修改

至此vundle的安装就完成了。关于vundle如何使用详细信息可以通过:help vundle查看。通常我们会用到的命令有:

vundle常用命令
Fig.3 - vundle常用命令

YouCompleteMe

接下来我们在说一说,补全插件的安装。有了它,可以让vim媲美IDE的补全功能。另外由于我主要用作前端开发,因此这里主要介绍javascripe的补全功能。

https://github.com/Valloric/YouCompleteMe#windows

上面的链接是YouCompleteMe在windows下的安装教程。首先需要确定一点的是,YCM(YouCompleteMe)需要python的支持,因此需要你的vim的版本在至少是 7.4.1578并且支持python。所以我们要先确认自己的vim是否支持python。可以通过:version命令查看vim特性中是否支持python。

vim features
Fig.3 - 查看vim是否支持python

上图中标黄的部分python/dynpython3/dyn前面的加号+表示支持python,如果是减号-则表示不支持。如果不支持,可以在这里下载vim。

然后我们需要先安装如下软件:

  • Python 2 or Python 3. Be sure to pick the version corresponding to your Vim architecture. It is Windows x86 for a 32-bit Vim and Windows x86-64 for a 64-bit Vim. We recommend installing Python 3.
  • CMake. Add CMake executable to the PATH environment variable.
  • Visual Studio. Download the community edition. During setup, select Desktop development with C++ in Workloads.
  • 7-zip. Required to build YCM with semantic support for C-family languages.

然后利用vundle安装YCM,即通过在vimrc文件的vundle配置信息中添加Plugin 'Valloric/YouCompleteMe',然后:PluginInstall安装。此时你的vimfiles\bundle文件夹下会看到下载完成的YouCompleteMe文件夹。此时通过DOS命令行,执行

cd %USERPROFILE%/vimfiles/bundle/YouCompleteMe
python install.py --tern-completer

对YCM进行编译,其中上面的–tern-competer表示javascript的补全引擎。 如果你想让vim支持其他更过语言的补全功能,可以查看这里的详细安装教程。

.tern-project

最后如果想要尝试vim的javascript补全功能,还需要在一个.tern-project文件。这是因为javascript的补全是基于tern,这个补全引擎启动的时候需要一个名为.tern-project存在当前工作目录或者当前工作目录的祖先文件夹。YCM在第一次编辑js文件的时候回启动tern server,所以这时vim的工作目录必须是.tern-project目录的子目录。

关于.tern-project的设置可以看这里,也可以看这里的简单介绍

另外,YCM并不支持多个tern server,因此当切换到另一个javascript工程的时候,需要做如下事情:

  • start a new instance of Vim from the new project’s directory
  • change Vim’s working directory (:cd /path/to/new/project) and restart the ycmd server (:YcmRestartServer)
  • change Vim’s working directory (:cd /path/to/new/project), open a JavaScript file (or set filetype to JavaScript) and restart the Tern server using YCM completer subcommand :YcmCompleter RestartServer.

最后来一张效果图,其中左边是.tern-project文件,我只添加了jquery库的补全:

补全效果图
Fig.4 - 补全效果图

其他

其他插件如NERDTree和Molokai的安装相对简单,可以直接在_vimrc配置文件中Vundle的配置信息中添加Plugin 'scrooloose/nerdtree'以及 Plugin 'tomasr/molokai'然后使用:PluginInstall命令即可。其他信息可以查看相应插件的github主页,会有详细介绍。

reference

http://ecomfe.github.io/blog/vim-javascript-completion/

https://github.com/VundleVim/Vundle.vim

https://github.com/Valloric/YouCompleteMe#javascript-semantic-completion

https://github.com/scrooloose/nerdtree

https://github.com/tomasr/molokai