【发布时间】:2016-04-25 14:12:23
【问题描述】:
例如,在下面:
Testing "deleting" within quotes
光标在删除中,如何删除引号内的文本并包含引号,离开:
Testing within quotes
【问题讨论】:
标签: vim
例如,在下面:
Testing "deleting" within quotes
光标在删除中,如何删除引号内的文本并包含引号,离开:
Testing within quotes
【问题讨论】:
标签: vim
您可以使用以下顺序删除包括引号在内的所有内容:
da"
请记住,这只适用于单行,并且会删除最后一个引号之后的所有尾随空格。
正如@James 在下面的 cmets 中指出的那样,您还可以使用 delete inside 序列来删除引号内的字符而不删除引号:
di"
您还可以使用 change inside 序列删除字符并切换到插入模式,让您轻松替换引号内的文本:
ci"
【讨论】:
da",你不仅可以在引号内做da",还可以在引号外做,例如在行首,删除第一个"..."
:help),进行快速搜索通常比遍历手册更容易。如果您认为这会有所帮助,请随时根据您的建议编辑答案。
:help 仅在您已经知道要查找的内容时才有用。将这些操作记录在容易找到的地方是很有用的。
di"的引号。非常有用,尤其是ci"
我们可以使用
da"
针对您的情况
或di" 仅删除“。”中的内容。
最好从文本对象开始。写作作为完整性的答案。
摘自:h text-objects,如下给出,建议i和a两种形式
这是一系列只能在可视模式下使用的命令或 在运算符之后。以“a”开头的命令选择“a”n 对象 包括空格,以“i”开头的命令选择一个“内部”对象 没有空白,或者只是空白。因此,“inner”命令总是选择比“a”命令更少的文本。
文本对象对其他字符对(如(), {}, etc)很有用。例如,在更改时很有用
if ( i == true ) {
}
到
if (_) {
}
通过使用ci( 或ci)。
【讨论】:
dt" 怎么样?
将光标保持在前引号中并按 d,然后键入 /"/e 它应该删除双引号和引号之间的内容。 这也适用于多行。
另一种方式: 将光标保持在第一个引号中并输入 df" 它还将删除引号和引号内的文本!不适用于多行。
在这两种方式中,您都在正常模式下执行命令。
【讨论】: