前面文章介绍了Vim 8.0的两个杀手锏插件LeaderF和gutentags,接下来继续介绍另外几个常用的插件:
YouCompleteMe
大名鼎鼎的Vim代码补全插件,它是基于标识符的引擎,理论上适用于每种编程语言。我主要用它为C/C++提供本机语义补全功能。
安装和配置
在.vimrc的vim-plug插件管理代码处添加YouCompleteMe插件:
call plug#begin('~/.vim/plugged')
Plug 'Valloric/YouCompleteMe'
call plug#end()
重新加载.vimrc并:PlugInstall安装插件,新的插件安装在~/.vim/plugged目录。接下来还需要安装该插件
$ sudo apt install build-essential cmake python3-dev
$ cd ~/.vim/plugged/YouCompleteMe
$ ./install.py --clang-completer
在.vimrc添加YouCompleteMe相关的常用配置代码:
" YouCompleteMe
let g:ycm_global_ycm_extra_conf='~/.vim/.ycm_extra_conf.py'
let g:ycm_add_preview_to_completeopt = 0
let g:ycm_show_diagnostics_ui = 0
let g:ycm_server_log_level = 'info'
let g:ycm_min_num_identifier_candidate_chars = 2
let g:ycm_collect_identifiers_from_comments_and_strings = 1
let g:ycm_complete_in_strings=1
let g:ycm_key_invoke_completion = '<m-z>'
set completeopt=menu,menuone
noremap <m-z> <NOP>
let g:ycm_semantic_triggers = {
\ 'c,cpp,python,java,go,erlang,perl': ['re!\w{2}'],
\ 'cs,lua,javascript': ['re!\w{2}'],
\ }
用法
用法非常简单,当你输入代码的时候YouCompleteMe引擎自动显示候选列表,只需要使用<c-n>或者<c-p>来上下选择字符串即可。
Ultisnips
UltiSnips是Vim代码片段的终极解决方案。它的速度非常快。
安装和配置
在.vimrc的vim-plug插件管理代码处添加一组Ultisnips相关的插件:
call plug#begin('~/.vim/plugged')
Plug 'SirVer/ultisnips'
Plug 'honza/vim-snippets'
call plug#end()
重新加载.vimrc并:PlugInstall安装插件,新的插件安装在~/.vim/plugged目录。在.vimrc添加Ultisnips相关的常用配置代码:
" Trigger configuration. Do not use <tab> if you use https://github.com/Valloric/YouCompleteMe.
let g:UltiSnipsExpandTrigger="<tab>"
let g:UltiSnipsJumpForwardTrigger="<c-b>"
let g:UltiSnipsJumpBackwardTrigger="<c-z>"
" If you want :UltiSnipsEdit to split your window.
let g:UltiSnipsEditSplit="vertical"
用法
用法很简单,参考下图,输入#!后使用tab键展开这段代码,如果有可以编辑的文本段,那么使用<c-b>或者<c-z>来前后跳转修改这些文本段。
NERDTree
NERDTree是Vim编辑器的文件系统资源管理器。使用此插件,用户可以直观地浏览复杂的目录层次结构,快速打开文件以进行读取或编辑,以及执行基本的文件系统操作。
安装和配置
在.vimrc的vim-plug插件管理代码处添加NERDTree:
call plug#begin('~/.vim/plugged')
Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' }
call plug#end()
重新加载.vimrc并:PlugInstall安装插件,新的插件安装在~/.vim/plugged目录。在.vimrc添加NERDTree相关的常用配置代码:
nmap <m-t> :NERDTreeMirror<CR>
nmap <m-t> :NERDTreeToggle<CR>
用法
使用<m-t>(Alt+t)命令来呼出和关闭NERDTree,然后选择文件打开。
Tagbar
Tagbar是一个Vim插件,提供了一种简单的方法来浏览当前文件的标签并获得其结构的概述。它通过创建一个侧边栏来显示当前文件的ctags生成的标签,按其范围排序。
安装和配置
在.vimrc的vim-plug插件管理代码处添加Tagbar:
call plug#begin('~/.vim/plugged')
Plug 'majutsushi/tagbar'
call plug#end()
重新加载.vimrc并:PlugInstall安装插件,新的插件安装在~/.vim/plugged目录。在.vimrc添加Tagbar相关的常用配置代码:
" Tagbar
nmap <m-c> :TagbarToggle<CR>
用法
使用<m-c>(Alt+c)命令来呼出和关闭Tagbar。
airline
当airline插件正确加载时,Vim将在每个窗口的底部绘制一个漂亮的状态行。
安装和配置
首先安装fonts-powerline
$ sudo apt install fonts-powerline
在.vimrc的vim-plug插件管理代码处添加airline:
call plug#begin('~/.vim/plugged')
Plug 'vim-airline/vim-airline'
call plug#end()
重新加载.vimrc并:PlugInstall安装插件,新的插件安装在~/.vim/plugged目录。在.vimrc添加airline相关的常用配置代码:
" airline
let g:airline_powerline_fonts = 1
用法
Vim自动在每个窗口的底部绘制一个漂亮的状态行:
未完待续。下一篇应该是整个系列文章的最后一篇了,将介绍:ale,delimitMate,signify和unimpaired这几个插件,然后会上传我的.vimrc上传到我的GitHub仓库。