我可以在 vim 中删除左括号并自动删除右括号吗?

我可以在 vim 中删除左括号并自动删除右括号吗?

以下是原文:

这是括号外的文本。{我是括号中的一段文本。}这是括号外的另一段文本。

我想删除{}文本内部的。所以我f{重复x执行,f}然后x再次执行.... 有什么简单的方法可以删除括号吗?谢谢。

答案1

把光标放到阻止位置

f{

拉出内部块

yi{

选择整个块

va{

覆盖选定的块

p


笔记:它适用于多行块。

答案2

这是另一种方法,和 kev 的答案一样,它适用于多行块并尊重嵌套括号。

将光标移至以下块:

f{

跳转到另一端:

%

删除末尾的括号:

x

跳回到你开始的地方(这些是反引号):

``

删除开头的括号:

x

以下是全文:

f{%x``x

答案3

嗯,取决于“容易”,但是

:s/{\([^}]*\)}/\1/

按常规顺序使用修饰符来处理每行的多个替换等。

对于单个括号对来说,这比手动示例需要做更多的工作,但如果涉及许多替换,则可以节省时间。

编辑:这与搜索所有括号并删除它们(:s/[{}]//)之间的区别在于,这只会删除平衡括号,但有一些怪癖(嵌套,正如我提到的)。

“我是什么真的试图做什么?”几乎总是值得在问题中解释以获得更好的答案。

相关内容