以下是原文:
这是括号外的文本。{我是括号中的一段文本。}这是括号外的另一段文本。
我想删除{}
文本内部的。所以我f{
重复x
执行,f}
然后x
再次执行.... 有什么简单的方法可以删除括号吗?谢谢。
答案1
把光标放到阻止位置
f{
拉出内部块
yi{
选择整个块
va{
覆盖选定的块
p
笔记:它适用于多行块。
答案2
这是另一种方法,和 kev 的答案一样,它适用于多行块并尊重嵌套括号。
将光标移至以下块:
f{
跳转到另一端:
%
删除末尾的括号:
x
跳回到你开始的地方(这些是反引号):
``
删除开头的括号:
x
以下是全文:
f{%x``x
答案3
嗯,取决于“容易”,但是
:s/{\([^}]*\)}/\1/
按常规顺序使用修饰符来处理每行的多个替换等。
对于单个括号对来说,这比手动示例需要做更多的工作,但如果涉及许多替换,则可以节省时间。
编辑:这与搜索所有括号并删除它们(:s/[{}]//
)之间的区别在于,这只会删除平衡括号,但有一些怪癖(嵌套,正如我提到的)。
“我是什么真的试图做什么?”几乎总是值得在问题中解释以获得更好的答案。