在 Vim 中删除 HTML 标记之间的文本?

我知道

di<

将在 HTML 标记本身中删除。

有没有一种简单的方法来删除两个标签之间的文本?

<span>How can I delete this text?</span>

谢谢!

35676 次浏览

当光标位于要删除的第一个字符上时,尝试使用 Dt <

dit将删除匹配的 XML 标记之间的文本(it表示“内部标记块”)

参见 :h it:h tag-blocks

(要删除的第一个字符上的光标) [输入] d

这个解决方案从第一个字符开始,然后进入可视模式(“ v”)。然后搜索下一个开始括号(“/<”) ,然后按 Enter 退出搜索。

此时,您的视觉选择将覆盖要删除的文本。按 d (“ d”)删除它。

如果我必须为一堆标签这样做,我会记录命令并将其与其他一些搜索结合起来,以使其可重复。密钥序列可能如下所示:

[ 文件开始时的光标] [输入] lv/< [输入] dnq

然后按下:

20@a

为了20个标签

cit
ci"

Vim 的两个最佳生产力促进命令。

我省了很多时间和精力,只有他们两个。

如果您的目标是在标志之间做相反的删除文本,我建议安装 Vim-Surround并运行 dst来删除环绕标记

Dit-delete 内部标记,保持在命令模式
Cit-change 内部标签,改为编辑模式

内删除
内部删除”

Di (- delete inside ()
Di)-delete inside ()

删除里面的内容[]
- 删除里面的内容[]

内部删除
删除内部

内部删除
等等

如果希望在键入命令之后处于编辑模式,则将第一个字母 d替换为 c

这适用于光标所在的任何地方:

超文本标示语言

dit-用于在命令模式下删除标记内容

为删除标记内容,插入模式为 (首选方法)

字符串

dit-用于删除仍处于命令模式的字符串内容

ci"/ci'-用于删除字符串内容,插入模式为 (首选方法)

希望这有所帮助;)