删除封闭的大括号

时间:2012-08-11 21:57:30

标签: vim

我有这样的文字:

Monkeys eat {bananas}.

我的光标位于单词banana

的中间
Monkeys eat {bana|nas}.

|符号表示光标的位置。

如何从那里删除大括号?

我可以用简单的ci}apples将“香蕉”更改为“苹果”,也许我可以使用类似的技巧来摆脱{}字符?

即使在这种情况下我也可以这样做,这实际上是我真正需要做的......

networks {
    local
    is|p
}

以上简化的例子只是为了介绍这个概念......

4 个答案:

答案 0 :(得分:8)

使用Tim Pope的优秀surround.vim插件(我强烈推荐),你可以 d s { for 删除周围的{

据我所知,添加另一个插件并不总是理想的解决方案,而是可以找到本机键序列,但surround.vim非常有用,因为它还可以处理XML / HTML标记并对复杂的文本对象执行附件。我认为它是“卡在荒岛上,必须在任何情况下”的插件之一。

答案 1 :(得分:8)

任务可以通过Vim内置文本动作完成。删除 大括号内的文本,选择大括号并粘贴以前删除的文本 在他们身上:

di{v%p

答案 2 :(得分:4)

这个怎么样:

yiBvaBp

没有插件和简单。

答案 3 :(得分:1)

删除括号并留下其他所有内容?

mz[{x]}x`z

扩展

:help m - 设置一个标记。在这种情况下标记初始光标位置,以便我可以在最后返回那里。 :help [{ - 将光标移动到包围光标的最小块的左括号。 :help x - 删除光标下现在的大括号。 ]}x - 对结束括号做同样的事情。最后

help `

返回标记位置,在开始时创建一个名为z的位置。

“插件”不是我的风格......