删除成对的标签surround.vim

vim插件surround介绍

在我写程序的时候,经常会遇到一些比较烦的修改情况,比如一个程序块

{
   xxxxx
   xxxxx
}

现在想删除{},怎么办?我是直接删除{然后numG跳到}再删除,但如果代码块比较长,就很不方便,有时候还要加上f}。

再比如,你有一个字符串“

foo
”,你想把他变成“foo”,怎么变?

Bdf>wdf>

还有很多很多例子,总的来说就是像这种环绕的字符,删除或者修改是非常不方便的。

昨天看到Peteris Krumins的一篇文章,推荐了surround这个插件,试用了一下,觉得非常棒,在这里就推荐一下。简单来说,这玩意就是在你指定某个字符的情况下去删除这一组surrounding字符,举个例子,还是上面这个代码块

{
   xxxxx
   xxxxx
}

现在你只需要把光标移到”{:上,用

ds{

那么下面的}也自然就被删除了。再比如你想删除“

foo
”的HTML标签,只需要把光标移到前面,用

dst

一切就搞定了。其中t表示html tag。

更爽的是,他有surrounding的替换功能。比如说,我们有字符串”Hello world!”,现在想换成是’Hello world!’,这种情况在python程序员风格不统一的情况下比较常见,那么你只需要

Bcs”‘

就可以了。更多的例子比如“

foo
”,想变成“

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查看

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值