vim插件之surround.vim

Posted on Jan 16, 2014

Surround.vim插件简介

[Surround.vim] 1 是一款关于括号、引号和xml标签匹配的插件,可以成对的添加、修改和删除。当然也可以自定义匹配项。下面就常用的功能分别对标记的添加、修改和删除一一介绍。

添加

如现有一文本Hello,wolrd。光标处在文本中,然后输入ysiw",文本变成:

"Hello,world"

yss则将光标所在的当前行全部添加标签。如yss)则将当前行用()包围。

b, B, r和a分别是), }, ]和>的别名,t 则代表html/xml标签。

ysst,然后再输入html/xml标签,即可成对添加。如

Hello,world

输入ysst<p>后,变为:

<p>Hello,World</p>

类似的,yssbyssByssryssa则给当前行添加相应的标记。

<Ctrl-v>ySb则给选定的文本添加()。

修改

cs为修改的命令。如:cs)}将()换为{},csbr将()换为[]。

删除

ds为删除的命令。如:dsb删除(),dsB删除{},dst则删除相应的html/xml标签。

安装

先安装上[vundle] 2或者[pathogen] 3插件,然后再通过他们安装插件比较方便。下面以vundle举例:

在[~/.vimrc] 4中添加:

Bundle ’tpope/vim-surround'

然后执行BundleInstall安装。

更多关于surround的细节,请通过:help surround查看。

其他

其实surround只是对vim中text-object motion的扩展,vim常见的text-object编辑功能有:

ci(, ci[, ci{:删除(),[],{}之间的所有字符并进入insert模式。类似的还有ci",ci'。
cit: 删除html/xml标签内所有的文本并进入insert模式。
di: 剪切配对符号间的文本,eg:di(, di{, ...
yi: 复制配对符号间的文本, eg:yi(, yi{, ...

ca, da, ya与ci, di, yi类似,只是包括比配符号本身。