【发布时间】:2009-06-03 17:55:04
【问题描述】:
我知道
di<
将在 HTML 标记本身中删除。
有没有一种简单的方法可以删除两个标签之间的文本?
<span>How can I delete this text?</span>
谢谢!
【问题讨论】:
我知道
di<
将在 HTML 标记本身中删除。
有没有一种简单的方法可以删除两个标签之间的文本?
<span>How can I delete this text?</span>
谢谢!
【问题讨论】:
dit 将删除匹配 XML 标记之间的文本。 (it 用于“内部标签块”。)
请参阅 :h it 和 :h tag-blocks。
【讨论】:
cit,如果你想马上写的话。
更改为
vat(或vit),然后重复at(或it)以逐步选择周围的标签。 (或v2at 等)。然后d 删除(等)。
cit
ci"
vim 的两个最佳生产力促进命令。
仅这两个我就节省了很多时间和精力。
【讨论】:
cit 包含在此线程中,但为了后代,ci" 将删除直到找到下一个"。非常适合更改 html 标记中的类名,例如 <span id="really long annoying-id"> -- 光标首先位于 ",点击 ci" 并在引号之间插入新字符。
ciw 也很有用,因为它会删除当前单词;实际上,我使用它的次数超过了 cit 和 ci"。
ci" 实际上会删除左边的文本直到下一个引号,然后删除右边的文本直到下一个引号,然后进入插入模式。 ct" 实际上是“删除到找到的下一个”的命令。但是是的,如果光标在左引号下,它的行为是一样的。
在光标位于要删除的第一个字符上时尝试 dt。在您的示例中为“H”。
【讨论】:
dit - 删除内部标签,保持命令模式
cit - 更改内部标签,更改为编辑模式
di" - 删除 ""
di' - 在 '' 内删除
di( - 删除内部 ()
di) - 删除内部 ()
di[ - 删除 []
di] - 删除 []
di{ -delete inside {}
di} - 在 {}
di
di> - 等等
如果您想在输入命令后进入编辑模式,请将第一个字母 d 替换为 c
【讨论】:
(光标在第一个要删除的字符上) v/
此解决方案从第一个字符开始,然后进入可视模式(“v”)。然后它搜索下一个开始括号(“/
此时,您的视觉选择将覆盖要删除的文本。按 d ("d") 删除它。
如果我必须为一堆标签执行此操作,我会记录该命令并将其与其他一些搜索结合以使其可重复。键序列可能如下所示:
[文件开始处的光标] qa/>[输入]lv/
然后按:
20@a
为 20 个标签执行此操作
【讨论】:
c/<[enter] 这样的命令,但现在我有点后悔了。你看,大多数流行的其他编辑器/IDE的“Vi-mode”插件不支持这种特定类型的命令。他们支持cit、ci"、ct<然而。所以,我又重新教学了。
如果您的目标是删除标志之间的文本,我建议安装 Vim-Surround 并运行 dst 删除环绕标记
【讨论】: