在vim中删除HTML标签之间的文本?

197

我知道

di<

如何在 HTML 标签中删除文本?

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

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

谢谢!

7个回答

397

dit 命令可以删除匹配的 XML 标签之间的文本。(it 代表 "内部标签块")。

请参阅 :h it:h tag-blocks


44
当然,在你想要立即写作之后使用“cit”。 - Debilski
6
Surround 插件 (http://www.vim.org/scripts/script.php?script_id=1697) 是一个很棒的工具,当你想要将一对标签 (cst) 从 <p> 改成 <div> 等操作时非常方便。 - Kris Jenkins
7
还有一个 dat(删除标签块)用于包括实际标签。cit 类似于 dit,但在输入后进入插入模式。cat 类似于 dat,但在输入后进入插入模式。此外,di" 和 di( 分别用于删除内部双引号和括号。 - aiham
@KrisJenkins,你能展示一个完整的例子来实现这个吗?我只能用引号/括号来做到这一点。 - FelikZ
2
还有vat(或vit),后跟重复的at(或it)以逐步选择周围的标签。 (或v2at等)。然后使用d进行删除(等等)。 - Joe Freeman
@KrisJenkins 你可以使用 ci< 在尖括号内进行更改。 - andho

37
cit
ci"

这是vim中两个最好的提高生产力的命令。

只用这两个命令,我节省了大量时间和精力。


4
此线程中已经涵盖了关于 cit 的内容,但为了记录,ci" 将删除到下一个找到的 "。非常适合在 HTML 标签中更改类名,例如 <span id="really long annoying-id"> -- 将光标置于第一个 " 处,然后输入 ci",光标将定位在引号之间,可以插入新字符。 - Alex Moore-Niemi
2
ciw 作为删除当前单词的命令也非常有用;实际上我使用它比 citci" 更频繁。 - John Sparwasser
3
@AlexMoore-Niemi: ci"实际上会删除左侧直到下一个引号和右侧直到下一个引号,然后进入插入模式。ct"实际上是“删除到找到的下一个引号”的命令。但如果光标位于左引号下方,则行为相同。 - schlimmchen

11

dit - 删除标签内部内容(保留命令模式)
cit - 修改标签内部内容(进入编辑模式)

di" - 删除""内的内容
di' - 删除''内的内容

di( - 删除()内的内容
di) - 删除()内的内容

di[ - 删除[]内的内容
di] - 删除[]内的内容

di{ -删除{}内的内容
di} - 删除{}内的内容

di< - 删除<>内的内容
di> - 等等

如果想在执行命令后进入编辑模式,可以用d替换为c


8

当光标位于要删除的第一个字符上时,尝试使用dt<进行删除。在您的示例中为“H”。


还可以用于其他情况,谢谢!(我认为应该是“dt<”) - CMB
1
虽然从技术上讲这是正确的,但它需要导航到您想要删除的第一个字符,而不是随意跳转到该行的任何位置。但事实就是事实。 :-) - lyonsinbeta

3

(光标放在第一个字符上以删除) v/<[enter]d

这个解决方案从第一个字符开始,然后进入可视模式 ("v")。 接下来搜索下一个起始括号 ("/<"),然后按回车键退出搜索。

此时,您的可视选择将覆盖要删除的文本。 按下 "d" ("d") 键进行删除。

如果我需要对一堆标签执行此操作,我会记录该命令并将其与其他搜索组合起来,使其可重复。关键序列可能如下所示:

[光标放在文件开头] qa/>[enter]lv/<[enter]dnq

然后按:

20@a

对 20 个标签执行此操作。


我曾经在我的“Vim人生”中频繁使用像 c/<[enter] 这样的命令,但现在我对此有些后悔。你知道,大多数流行编辑器/集成开发环境中的“Vi模式”插件不支持这种特定类型的命令。它们支持 citci"ct< 等等。所以我又开始重新学习了。 - pilat

-1

这适用于您光标所在的任何位置:

HTML

dit - 在命令模式下删除标签内容

cit - 在插入模式下删除标签内容(首选方式)

STRING

dit - 在命令模式下删除字符串内容

ci"/ci' - 在插入模式下删除字符串内容(首选方式)


-2
如果你想要执行删除标记之间文本的反向操作,我建议安装Vim-Surround并运行dst来删除包围标记。

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