概述
vim之所以广受青睐好评如潮,它丰富多样的插件起到了举足轻重的贡献。那么如何获取和安装插件呢?
通常我们可以在vim官网或github上获取插件,然后可以手动安装或利用Vundle, Pathogen, Vim-plug, VAM等插件管理器来安装。
手动安装
找到或创建.vim目录
安装vim后一般在你的用户主目录(home)下有一个.vim文件夹,你的插件就可以放在这个目录中的,当然其实你可以放在任何地方的。-
在.vim目录里创建一个bundle文件夹
bundle用于我们存放插件,如果插件在git上,可以直接使用git命令git clone <repository-url>
如果不在git上,你获取后把它拷贝到bundle即可,如果该插件只是一个单独的.vim文件,建议你最好为其创建一个文件夹来存放,这样方便后期的维护。
-
设置runtimepath
现在需要告诉vim每次启动的时候去哪里找你的插件,runtimepath是vim的环境变量,用于vim查找 scripts, syntax files, plugins等的路径。你可以在vim中使用:set runtimepath
来查看runtimepath的当前的值。通过编辑.vimrc来配置runtimepath,如
set runtimepath^=~/.vim/bundle/DrawIt/
-
加载.vimrc
你可以退出再打开vim,也可以通过vim命令来使.vimrc立即生效::source ~/.vimrc
ps:
或许你会遇到启动vim失败或插件不可用的错误,这可能是因为你的插件还有依赖没被安装,所以还是挺麻烦的。如果你想避免可以使用下面的插件管理器来安装插件。
插件管理器
概述
vim有许多可选的插件管理器如Vundle, Pathogen, Vim-plug, VAM,根据你的喜好来使用,下面简单介绍下Vim-plug。
Vim-plug是一个mini型的插件管理器,具有安装简单(只有一个文件)、简洁直观的语法、并行安装、更新等特点。
安装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"))
管理插件
-
编辑.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()
-
安装插件
:PlugInstall
-
其他命令
PlugUpdate:升级插件;
PlugClean:删除未被使用的插件目录;
PlugUpgrade:升级Vim-plug自身;
PlugStatus:查看插件状态;
更多配置和命令请参考Vim-plug官方文档
更多原创文章可关注我的个人博客:宅前疯 或微信公众账号:zhaiqianfeng