推荐几款最近发现非常酷的Vim插件

最近看一个github上的Vim配置, 发现了几款非常酷而且非常有用的Vim插件:

  • delimitMate 用于补全括号和引号
  • vim-surround 用于快速切换括号/引号或者标签
  • GitGutter 实时显示git更改
  • Gitv 查看Git详细提交日志(类似gitk)
  • vim-commentary Vim批量注释工具, 可以注释多行和去除多行注释
  • indentLine 更加美观的显示缩进对齐线

先放上录屏:

安装

上面插件可以通过 Vundle 来安装 (了解Vundle猛击 这里), 下面是 .vimrc 的配置

Bundle "Yggdroot/indentLine"
Bundle "airblade/vim-gitgutter"
Bundle "gregsexton/gitv"
Bundle "tpope/vim-commentary"
Bundle "tpope/vim-surround"
Bundle "Raimondi/delimitMate"

然后重新打开 Vim, 执行 :BundleIntall 等待安装完成

配置使用

delimitMate和GitGutter安装完成不用任何配置即可使用, 下面我们先介绍 vim-surround 插件的使用

vim-surround

这个插件可以快速的为字符串包围/改变或去除引号/括号或者HTML标签

为单个单词包围

在命令模式下, 使用 ysiw + '/"/(/[/{ 就可以为光标下的一个单词包围上 '/"/(/[/{

比如 ysiw' 为光标下的单词包围上单引号, ysiw" 为光标下单词包围上双引号, 依此类推.

vim-surround 同时还支持包围html标签, 将光标放到某单词试试下面指令

ysiw<p>
ysiw<p class="meta">

包围一行

yssb 可以快速为一行包围圆括号, yss + '/"/(/[/{ 可以为正行快速包围相应的引号/括号

比如 yss" 为一行包围双引号

更改包围

cs 指令可以更改包围, 比如 cs'" 是将单引号变成双引号, cs"( 是将双引号变成圆括号

vim-surround支持将括号或者引号变更为html标签, 试试下面命令

cs'<p>

上面命令将单引号换成 <p> 标签

去除包围

ds 指令可以取出包围, 后面需跟包围的内容, ds" 是去除双引号包围, ``

indentLine

这个插件安装成功后就会显示缩进对齐线, 我们仅仅在 .vimrc 里加一行来切换是否显示

map <leader>il :IndentLinesToggle<CR>

这样我们就可以通过 <leader> il (我的leader映射的,)来切换是否显示对齐线

Gitv

Gitv 实现了可以用Vim来查看Git的详细提交信息, 只需要打开Vim 执行 :Gitv

vim-commentary

这个插件可以快速注释与反注释多行内容, 但是它的注释符使用的是 commentstring, 默认是 /* %s */, 但这个值满足不了Python 和 Shell这样的语言, 在 .vimrc 添加如下内容

autocmd FileType python,shell set commentstring=#\ %s                 " 设置Python注释字符
autocmd FileType mako set cms=##\ %s

Visual 模式下 gc 命令可以注释选中的行

普通模式下 gcc 指令可以快速注释一行

gcu 可以撤销注释

最后

有什么没介绍到的大家可以看看帮助, 大家也可以围观这个强大Vim配置: https://github.com/liangxianzhe/dotvim

Show Comments