我知道
di<
如何在 HTML 标签中删除文本?
有没有一种简单的方法可以删除两个标签之间的文本?
<span>How can I delete this text?</span>
谢谢!
dit
命令可以删除匹配的 XML 标签之间的文本。(it
代表 "内部标签块")。
请参阅 :h it
和 :h tag-blocks
。
cit
ci"
这是vim中两个最好的提高生产力的命令。
只用这两个命令,我节省了大量时间和精力。
cit
的内容,但为了记录,ci"
将删除到下一个找到的 "
。非常适合在 HTML 标签中更改类名,例如 <span id="really long annoying-id">
-- 将光标置于第一个 "
处,然后输入 ci"
,光标将定位在引号之间,可以插入新字符。 - Alex Moore-Niemiciw
作为删除当前单词的命令也非常有用;实际上我使用它比 cit
和 ci"
更频繁。 - John Sparwasserci"
实际上会删除左侧直到下一个引号和右侧直到下一个引号,然后进入插入模式。ct"
实际上是“删除到找到的下一个引号”的命令。但如果光标位于左引号下方,则行为相同。 - schlimmchendit - 删除标签内部内容(保留命令模式)
cit - 修改标签内部内容(进入编辑模式)
di" - 删除""内的内容
di' - 删除''内的内容
di( - 删除()内的内容
di) - 删除()内的内容
di[ - 删除[]内的内容
di] - 删除[]内的内容
di{ -删除{}内的内容
di} - 删除{}内的内容
di< - 删除<>内的内容
di> - 等等
如果想在执行命令后进入编辑模式,可以用d替换为c
当光标位于要删除的第一个字符上时,尝试使用dt<进行删除。在您的示例中为“H”。
(光标放在第一个字符上以删除) v/<[enter]d
这个解决方案从第一个字符开始,然后进入可视模式 ("v")。 接下来搜索下一个起始括号 ("/<"),然后按回车键退出搜索。
此时,您的可视选择将覆盖要删除的文本。 按下 "d" ("d") 键进行删除。
如果我需要对一堆标签执行此操作,我会记录该命令并将其与其他搜索组合起来,使其可重复。关键序列可能如下所示:
[光标放在文件开头] qa/>[enter]lv/<[enter]dnq
然后按:
20@a
对 20 个标签执行此操作。
c/<[enter]
这样的命令,但现在我对此有些后悔。你知道,大多数流行编辑器/集成开发环境中的“Vi模式”插件不支持这种特定类型的命令。它们支持 cit
、ci"
、ct<
等等。所以我又开始重新学习了。 - pilat这适用于您光标所在的任何位置:
dit
- 在命令模式下删除标签内容
cit
- 在插入模式下删除标签内容(首选方式)
dit
- 在命令模式下删除字符串内容
ci"
/ci'
- 在插入模式下删除字符串内容(首选方式)
vat
(或vit
),后跟重复的at
(或it
)以逐步选择周围的标签。 (或v2at
等)。然后使用d
进行删除(等等)。 - Joe Freemanci<
在尖括号内进行更改。 - andho