vim插件推荐(持续更新)
推荐一些我自己平时在用的高效vim插件,并配有安装方法。
1. Vim-plug
Vim-plug 是一个自由、开源、速度非常快的、极简的 vim 插件管理器。它可以并行地安装或更新插件。你还可以回滚更新。它创建shallow clone最小化磁盘空间使用和下载时间。它支持按需加载插件以加快启动时间。其他值得注意的特性是支持分支/标签/提交、post-update 钩子、支持外部管理的插件等。
安装
$ curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
配置
要安装插件,你必须如下所示首先在 Vim 配置文件中声明它们。一般 Vim 的配置文件是~/.vimrc。请记住,当你在配置文件中声明插件时,列表应该以 call plug#begin(PLUGIN_DIRECTORY) 开始,并以 plug#end() 结束。
例如,我们安装 “lightline.vim” 插件。为此,请在 ~/.vimrc 的顶部添加以下行
call plug#begin('~/.vim/plugged')
Plug 'itchyny/lightline.vim'
call plug#end()
使用
$ vim #打开vim:PlugStatus #查看插件状态:PlugInstall #安装之前在配置文件中声明的插件
2. NERDTree
这个插件是几乎所有研发人员都会安装的一个插件——目录树,可以支持在不退出vim的编辑器的前提下,在文件中快速切换,同时能让开发人员快速掌握项目目录结构,是提升开发效率必不可少的工具。预览结果如下图所示:
安装配置
使用vim-plug安装,~/.vimrc
中配置
call plug#begin()
Plug 'preservim/nerdtree'
call plug#end()
NERDTree默认无须配置即可直接使用,当然更改部分映射后,可以使得目录树试用起来更加得心应手。最常见的配置在~/.vimrc添加如下命令,即可使用Ctrl+n快速开启目录树。
map <C-n> :NERDTreeToggle<CR>
使用
目录树的使用主要通过在vim的command模式下键入如下命令,即可达到相应的效果。
?: 快速帮助文档
o: 打开一个目录或者打开文件,创建的是 buffer,也可以用来打开书签
go: 打开一个文件,但是光标仍然留在 NERDTree,创建的是 buffer
t: 打开一个文件,创建的是Tab,对书签同样生效
T: 打开一个文件,但是光标仍然留在 NERDTree,创建的是 Tab,对书签同样生效
i: 水平分割创建文件的窗口,创建的是 buffer
gi: 水平分割创建文件的窗口,但是光标仍然留在 NERDTree
s: 垂直分割创建文件的窗口,创建的是 buffer
gs: 和 gi,go 类似
x: 收起当前打开的目录
X: 收起所有打开的目录
e: 以文件管理的方式打开选中的目录
D: 删除书签
3. leaderF
LeaderF现在基本是Vim最好的模糊查找插件. 参考
https://github.com/Yggdroot/LeaderF
https://retzzz.github.io/dc9af5aa/
安装
Plug 'Yggdroot/LeaderF', { 'do': './install.sh' }
文件检索
就是前面说的那个场景, 有一大堆文件, 输入几个字母就可以筛选出少数几个文件, 然后把你想要的那个挑出来. VIM过去有一个流行的插件叫CtrlP. 就是实现这个功能. 不过根据作者的说法, 那个插件效率比较差.
可以用这个老插件的快捷键Ctrl-P调出查找窗口, 然后输入你记忆中的文件名片段就可以了. 其默认快捷键是f, 也是这个软件名字的由来, 但是我习惯把这个快捷键map到别的功能上, 只用Ctrl-P.
let g:Lf_ShortcutF = '<c-p>'
buffer 检索
<leader>b
4. NerdCommenter
如果你是一个酷爱写注释的程序员的话,那么你一定要用一下nerdcommenter。
NerdCommenter和Vim的Visual模式结合可以快速的注释/取消注释多行代码,同时在行尾追加注释并自动进入Insert模式可以方便的进行行内注释。
5. YouCompleteMe
6. lightline
美化你的vim,具体查看官方。
安装配置
Plug 'itchyny/lightline.vim'
set laststatus=2
set statusline=%F
let g:lightline = {
\ 'colorscheme': 'wombat',
\ 'active': {
\ 'left': [ [ 'mode', 'paste' ],
\ [ 'readonly', 'filename', 'modified', 'saysth' ] ]
\ },
\ 'component': {
\ 'saysth': '今日任务:0. clean my room 1. nemo training flow 2. model zoo',
\ 'sunnyday': 'RE SO SO SI DO SI LA SO LA SI SI SI SI LA SI LA SO'
\ },
\ }