如何安装vim的插件

概述

vim之所以广受青睐好评如潮,它丰富多样的插件起到了举足轻重的贡献。那么如何获取和安装插件呢?

通常我们可以在vim官网github上获取插件,然后可以手动安装或利用Vundle, Pathogen, Vim-plug, VAM等插件管理器来安装。
vim

手动安装
  1. 找到或创建.vim目录
    安装vim后一般在你的用户主目录(home)下有一个.vim文件夹,你的插件就可以放在这个目录中的,当然其实你可以放在任何地方的。
  2. 在.vim目录里创建一个bundle文件夹
    bundle用于我们存放插件,如果插件在git上,可以直接使用git命令

    git clone <repository-url>

    如果不在git上,你获取后把它拷贝到bundle即可,如果该插件只是一个单独的.vim文件,建议你最好为其创建一个文件夹来存放,这样方便后期的维护。

  3. 设置runtimepath
    现在需要告诉vim每次启动的时候去哪里找你的插件,runtimepath是vim的环境变量,用于vim查找 scripts, syntax files, plugins等的路径。你可以在vim中使用

    :set runtimepath

    来查看runtimepath的当前的值。通过编辑.vimrc来配置runtimepath,如

    set runtimepath^=~/.vim/bundle/DrawIt/
  4. 加载.vimrc
    你可以退出再打开vim,也可以通过vim命令来使.vimrc立即生效:

    :source ~/.vimrc

ps:
或许你会遇到启动vim失败或插件不可用的错误,这可能是因为你的插件还有依赖没被安装,所以还是挺麻烦的。如果你想避免可以使用下面的插件管理器来安装插件。

插件管理器
概述

vim有许多可选的插件管理器如Vundle, Pathogen, Vim-plug, VAM,根据你的喜好来使用,下面简单介绍下Vim-plug

Vim-plug是一个mini型的插件管理器,具有安装简单(只有一个文件)、简洁直观的语法、并行安装、更新等特点。
vim-plug

安装Vim-plug

下载Vim-plug并把它放在autoload目录里
Unix

curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

Neovim

curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

Windows

md ~\vimfiles\autoload
$uri = 'https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
(New-Object Net.WebClient).DownloadFile($uri, $ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath("~\vimfiles\autoload\plug.vim"))

管理插件
  1. 编辑.vimrc(Neovim是~/.config/nvim/init.vim)
    添加vim-plug配置,以call plug#begin()开头,call plug#end()结尾,中间是插件列表,begin可以接受参数指定存放插件的位置:

    " Specify a directory for plugins (for Neovim: ~/.local/share/nvim/plugged)
    call plug#begin('~/.vim/plugged')

    " Make sure you use single quotes

    " Shorthand notation; fetches https://github.com/junegunn/vim-easy-align
    Plug 'junegunn/vim-easy-align'

    " Any valid git URL is allowed
    Plug 'https://github.com/junegunn/vim-github-dashboard.git'

    " Multiple Plug commands can be written in a single line using | separators
    Plug 'SirVer/ultisnips' | Plug 'honza/vim-snippets'

    " On-demand loading
    Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' }
    Plug 'tpope/vim-fireplace', { 'for': 'clojure' }

    " Using a non-master branch
    Plug 'rdnetto/YCM-Generator', { 'branch': 'stable' }

    " Using a tagged release; wildcard allowed (requires git 1.9.2 or above)
    Plug 'fatih/vim-go', { 'tag': '*' }

    " Plugin options
    Plug 'nsf/gocode', { 'tag': 'v.20150303', 'rtp': 'vim' }

    " Plugin outside ~/.vim/plugged with post-update hook
    Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }

    " Unmanaged plugin (manually installed and updated)
    Plug '~/my-prototype-plugin'

    " Initialize plugin system
    call plug#end()
  2. 安装插件

    :PlugInstall
  3. 其他命令

    • PlugUpdate:升级插件;
    • PlugClean:删除未被使用的插件目录;
    • PlugUpgrade:升级Vim-plug自身;
    • PlugStatus:查看插件状态;

      更多配置和命令请参考Vim-plug官方文档

      常用插件

  • NERDTree 树形目录
    使用方法::NERDTree 启动插件,ctr+w+h 光标定位于目录,ctrl+w+l光标定位于编辑窗口,ctrl+w光标左右窗口切换;光标与目录时:q退出插件。
  • CtrlP 文件查询
    对文件进行模糊的查找而不必在终端不断的cd、ls。使用方法:CtrlP或ctrl+p快捷键启动插件,:q或ctrl+c退出插件,更多功能请查看官方文档。
  • NERDCommenter 快速注释
    使用非常方便默认快捷键:[count]cc 添加注释,[count]cu取消注释,count为行数,leader默认是反斜线\。
  • surround.vim 包裹处理
    用于处理成对的符号,比如”Hello world!”,可以把光标定位于双引号内,normal模式同时键入cs”‘,就修改成’Hello world!’。
  • vial-httphttp请求
    支持Get、Post等各种http请求,方便测试
翟前锋 wechat
欢迎订阅我的微信公众号:zhaiqianfeng!