前面文章介绍了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 python-dev 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
仓库。