vim插件surround介绍
在我写程序的时候,经常会遇到一些比较烦的修改情况,比如一个程序块
{
xxxxx
xxxxx
}
现在想删除{},怎么办?我是直接删除{然后numG跳到}再删除,但如果代码块比较长,就很不方便,有时候还要加上f}。
再比如,你有一个字符串“
Bdf>wdf>
还有很多很多例子,总的来说就是像这种环绕的字符,删除或者修改是非常不方便的。
昨天看到Peteris Krumins的一篇文章,推荐了surround这个插件,试用了一下,觉得非常棒,在这里就推荐一下。简单来说,这玩意就是在你指定某个字符的情况下去删除这一组surrounding字符,举个例子,还是上面这个代码块
{
xxxxx
xxxxx
}
现在你只需要把光标移到”{:上,用
ds{
那么下面的}也自然就被删除了。再比如你想删除“
dst
一切就搞定了。其中t表示html tag。
更爽的是,他有surrounding的替换功能。比如说,我们有字符串”Hello world!”,现在想换成是’Hello world!’,这种情况在python程序员风格不统一的情况下比较常见,那么你只需要
Bcs”‘
就可以了。更多的例子比如“
foo
”,用cst
就可以了。
这个插件还有更强大的ys命令配合。最简单的例子,“Hello world!”,光标在world上,那么用
ysiw)
就可以将其变为“ Hello (world)!”,其中iw表示对当前word进行插入或者surrounding操作。
如果是想把“foo”变成“foo”,那命令就是
ysiwt
另一个实用的功能就是整行插入,比如你有一行内容
This is a comment
现在你想把它变为
“This is a comment”
命令就是
yss”
比较遗憾的是,对于c程序员来说,经常会有一大堆comment,然后用包含,但貌似这个插件目前还不支持多重字符的输入,我希望的功能是,比如用
ySS
但试了几种方式都没有成功,也许只是我没看到吧
这个插件的其他常用功能请:help surround查看