vim插件安装

Posted by min on May 17, 2018

vim插件安装

Vim常见插件管理器有Vundle,vim-plug,本文中使用的vim-plug。使用插件管理器的好处是,只需要保存了vimrc,运行插件安装命令即能自动安装 配置的插件,当然前提是联网

升级vim8.0(Centos)

卸载原来的vim rpm,需要安装python,因为需要增加YouCompleteMe补全代码插件时, vim编译需要增加python,方法就是./configure --enable-pythoninterp=yes

yum install ncurses-devel
wget https://github.com/vim/vim/archive/master.zip
unzip master.zip
cd vim-master
cd src/
./configure  --enable-pythoninterp=yes
make
make install

# edit .bash_profile
export PATH=$PATH:/usr/local/bin

vim-plug installation

1. 下载vim plug

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

2. 编辑.vimrc

添加vimrc如下,所有的plugin都如下添加。运行vim, 命令行模式输入:PlugInstall, 会自动安装添加的plugin。 也可以事先自己下载到定义的plug目录 :PlugStatus可以查看当前使用的plug :PlugUpdate更新插件 :PlugUpgradevim plug 升级

" VIM-plugin Setting

call plug#begin('~/.vim/autoload') "vim plugin path"
Plug 'airblade/vim-gitgutter'    "gitgutter插件"
Plug 'fatih/vim-go', { 'do': ':GoUpdateBinaries' } "vim-go 插件"
Plug 'Valloric/YouCompleteMe' "YCM插件"
call plug#end()

YouCompleteMe插件安装

YouCompleteMe可以算得上是vim ide神器,就是实现代码自动补全功能,安装YCM步骤

$ cd ~/.vim/autoload/
$ git clone https://github.com/Valloric/YouCompleteMe.git
$ cd YouCompleteMe/
$ git submodule update --init --recursive
$ cd ~/.vim/bundle/YouCompleteMe
$ ./install.py --go-completer   // 对golang的支持
$ cp third_party/ycmd/examples/.ycm_extra_conf.py ~/

增加YCM的vimrc配置

let g:ycm_global_ycm_extra_conf='~/.ycm_extra_conf.py'  "设置全局配置文件的路径
let g:ycm_seed_identifiers_with_syntax=1    " 语法关键字补全
let g:ycm_confirm_extra_conf=0  " 打开vim时不再询问是否加载ycm_extra_conf.py配置
let g:ycm_key_invoke_completion = '<C-a>' " ctrl + a 触发补全
set completeopt=longest,menu    "让Vim的补全菜单行为与一般IDE一致(参考VimTip1228)

#

git clone https://github.com/scrooloose/nerdtree.git ~/.vim/autoload/nerdtree

打开NERDtree,使用命令模式:NERDTreeToggle, 太长了可以在.vimrc中定义快捷键

常用的窗口快捷键

ctrl + w + h    光标 focus 左侧树形目录
ctrl + w + l    光标 focus 右侧文件显示窗口
ctrl + w + w    光标自动在左右侧窗口切换
ctrl + w + r    移动当前窗口的布局位置
o       展开左侧某个目录,再按一下就是合并目录
t       在新 Tab 中打开选中文件/书签,并跳到新 Tab
T       在新 Tab 中打开选中文件/书签,但不跳到新 Tab
P       跳到根结点
p       跳到父结点
q       关闭 NerdTree 窗口

vim-go 快捷键定义

" set mapleader
let mapleader = ","

" vim-go custom mappings
au FileType go nmap <Leader>s <Plug>(go-implements)
au FileType go nmap <Leader>i <Plug>(go-info)
au FileType go nmap <Leader>gd <Plug>(go-doc)
au FileType go nmap <Leader>gv <Plug>(go-doc-vertical)
au FileType go nmap <leader>r <Plug>(go-run)
au FileType go nmap <leader>b <Plug>(go-build)
au FileType go nmap <leader>t <Plug>(go-test)
au FileType go nmap <leader>c <Plug>(go-coverage)
au FileType go nmap <Leader>ds <Plug>(go-def-split)
au FileType go nmap <Leader>dv <Plug>(go-def-vertical)
au FileType go nmap <Leader>dt <Plug>(go-def-tab)
au FileType go nmap <Leader>e <Plug>(go-rename)

" vim-go settings
let g:go_fmt_command = "goimports"