在Vim中,如何删除双引号内的所有内容?

159

假设我已经在引号内部。


3
这与“如何在括号之间进行选择”密切相关(链接为 https://dev59.com/pnNA5IYBdhLWcg3wL6oc)。 - Morgan
2个回答

310

尝试以下序列,可以将其视为“d”elete,“i”nside(内部),引号,因此:

di"

13
在这种情况下,还可以参考:help text-objects中类似于"的其他用法。 - Randy Morris
36
请看一下 da" 是否符合你的需求。助记词为 "删除引号块"。它会从引号开始删除到引号结尾,包括我相信在闭合引号后的任何空格。 - Herbert Sitz
1
对我来说,它是 di"<空格键>。对于某些键盘,必须按下空格键才能发送双引号字符。 - André Staltz
2
如果您想刪除引號但保留內部文本,請查看Vim-Surround。@funk-shun - Jonathan Dumaine
对我来说,这是一个奇怪的错误(?):如果文本换行是“开启”的,并且引号之间的内容跨越了两行,则此方法无法正常工作。我必须调整窗口大小,使其全部在一行上。然后它就可以正常工作了。 - nulluser
显示剩余3条评论

34
以下句子在普通模式下删除引号内的所有内容:
di"

其中:

  • d代表删除
  • i代表“inner”,即在以下标记之间的内部。
  • "用于指定您将在引号内删除。

请注意,当您调用它时,无需将其放在引号内,该命令会查找当前行引号内的第一个文本出现位置并将其删除,因此您可以节省一些按键。

另外,如果您想要删除引号,请使用以下命令(a表示“around it”)

da"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接