vim 入坑指南(五)插件 Vim-Plug

在了解了基本流程之后,我们终于可以说说第一个插件了。不过在开篇之前,我们要跑一个题,谈谈 git,然后谈谈 vimrc 里放什么,最后说一下 vim-plug。

Git

这个应该是一个比较常见的工具了,如果你有所了解,可直接跳过,完全无碍。如果你之前没用过,接下来咱们就说说 Git 是做什么的。只是简单介绍一下,不是教程。

简单来说, Git 就是程序员的时光机,或者说存档读取器,有点像 Mac 里的 Time Machine ( Windows 上我不知道是啥诶)。大量的软件开发项目都用了 Git 作为它们的版本控制器,比如 Github 和 Bitbucket 上的众多开源项目。

由于我们使用的许多插件都是来自 Github 上的开源项目,为了紧跟项目的开发进度,我们自然也需要安装一下 Git。如果你用的是 Mac,那么又厉害拉,Mac 天生也自带 Git (也可以用 Homebrew 下安装的 Git)。如果你用的是 Windows,那么可以去 Git 官网 (https://git-scm.com) 下载。

在等待部分小伙伴们下 Git 的同时,我们来说一下 vimrc 究竟放什么。

vimrc 里放什么

我们对 vim 的调试和定制基本都会放在 vimrc 里。如果你忘了 vimrc 在哪,它可能会在(没有的话就新建一个):

1
2
mac/unix: ~/.vimrc
windows: $HOME/_vimrc

关于 vimrc,还要说一个重要的原则: 千万别放你不明白的设置进去。就好比你做菜的时候放了完全之前万千没听说过的调料(甚至可能不是调料…)。总之,遇到任何问题,可以随时问问 vim (参照上一篇)。

言归正传,目前为止,咱们只说了如下几个 vimrc 里的设置:

1
2
3
4
5
6
7
set nocompatible
syntax on
set number
set relativenumber
set wrap
set ruler
set incsearch

大致划分的话,我们通过 vimrc 告诉 vim 如下几类信息:

  1. 插件
  2. 界面设置
  3. 操作定义

这只是为了说明方便做的划分,其实倘若按功能分类的话会更细。不急不急,以后再提。我们这里先跳过插件,因为插件部分在后面 vim-plug 会细说。我们直接从第二个开始说。

界面设置

这个部分的设置比较简单,这几个基本设置是已经介绍过了的。之后等我们提及别的插件时(如 vim-airline,vim-gotham 等等),会再添加更多的设置。

1
2
3
4
5
6
syntax on
set number
set relativenumber
set wrap
set ruler
set incsearch

这里,我们可以补充几个设置,如果你觉得有用的话,可以加上:

1
set showcmd  (在右下角)显示现有的命令

比如,我现在输入了 c2,右下角便会有及时的显示。

1
set showmatch  输入时显示相对应的括号

这个设置有时候有帮助,不过会减慢输入的效率,所以我目前是关掉的 set noshowmatch

操作定义

这个部分里,我们设定 vim 的行为,可以是 vim 自带的操作,也可是自定义的,当然也包括调用插件定义的操作。

其中比较重要的一项就是设定 <leader> key。在 vim 里,有许多快捷键都是又 <leader> key 发起的,不少 vim 的插件也如此。所以我们要把 <leader> key 设置得离手指越近越好,vim 的自带设定是 \ ,不少人使用的是空格键 <space>,我用的则是逗号 ,

1
2
let mapleader = ","     " let 语句
let g:mapleader = "," " 设置 vim 参数

再比如,vim 里有一趁手的功能是使用 ctrl + actrl + x 来增减数字。由于这么按着太别扭,我定义了如下两个快捷键

1
2
map <c-j> <c-x>   " map 语句
map <c-k> <c-a> " 设置键盘映射

这里的 <c-?> 就是 ctrl + ? 的意思,而 map 则代表映像。有了这两行,我按下 ctrl + j 就等于我按下了 ctrl + xctrl + k 也是同理),而且这个功能也是可以运用我们的操作公式的。比如,5<c-j> 会减 5,15<c-k> 会加 15.

另外还有几个有关 vim 里搜所文本的设置,大伙可以自己查查,然后看看需不需要。

1
2
3
set ignorecase
set smartcase
set hlsearch

如果你想让删除键绕过行首,行内缩进继续删除的话(如图),可以加上这个设置

1
set backspace=endofline,start,indent

如果你想在 vim 中使用鼠标(点击),可以用过这个设置实现

1
set mouse=a  " a 代表所有模式

这个部分,之后我们会加越来越多的东西。好啦,我们来讲讲这第一个插件 vim-plug。

vim-plug

vim-plug 是一个 vim 的插件管理插件,通过运用 Git 来实现插件的更新以及相关的管理任务,包括锁定或者回滚插件版本,按需使用插件(而不是一股脑都用),以及插件更新的后续处理。放一个官方的动图,演示一下

看上去还是十分酷炫的,类似的插件也有很多,比如 neobundle, vundle,它们做的都大致相同,用哪个都好。

安装过程也十分简单,可直接参照官网的说明即可,地址如下:https://github.com/junegunn/vim-plug ,具体是这个部分。

你也可以点击 Download plug.vim 的链接,然后把它直接放进如下的文件夹里

1
2
Mac: ~/.vim/autoload
Windows: ~\vimfiles\autoload

安装完成后,我们就可以想按什么插件就按什么插件了,如果你用的是 Windows, 那么就把 '~/.vim/plugged' 换成 '~\vimfiles\autoload就好啦。

假如你选定了一个插件,比如 vim-airline

那么直接在 vim-plug 的定义范围内加上

1
Plug 'vim-airline/vim-airline'

所以目前 vimrc 是这个样子的

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
set nocompatible

" vim-plug
call plug#begin('~/.vim/plugged')

Plug 'vim-airline/vim-airline'

call plug#end()

" 界面设置
syntax on
set number
set relativenumber
" ...

" 操作定义
" ...

重新开启 vim,然后在命令行中运行 :PluginInstall 就可以安装插件 vim-airline 了。更多的插件管理功能在插件的说明文件里都有介绍,以后我们在介绍别的插件时,也会提到。

好啦,这一篇就先说这么多。下一篇具体说什么还没有想好,因为明天还有一门考试…

VZJ wechat
欢迎您扫一扫上面的二维码,订阅 V 字君的微信公众号。