我如何配置 Vim,以便当我更改一对匹配的 HTML 标签中的一个成员时,另一个成员也会自动更改以匹配?
例如:给定<span>content</span>
,我想更改<span>
为<div>
,然后结尾</span>
自动更改为</div>
。最佳情况下,这会在从插入模式返回到正常模式时发生,但如果我必须点击特殊的键绑定才能发生这种情况,那就没问题了。
答案1
优秀的环绕.vim让这变得简单 - 将光标放在要更改的标签内的任意位置,在正常模式下,键入cst<div>
( c
hange s
urrounding t
ag to <div>
)。开始和结束标记中的标记名称都将更改为“div”,然后您将返回正常模式。
答案2
以下是几个步骤:
- 将光标放在第一个标签上。
- 按:选择外部 html 代码vat。
按Esc退出可视模式并键入:
:'<,'<s/span/div/ :'>,'>s/span/div/
请注意,
:'>,'>s/span/div/
如果同一行中出现两次相同的结束标记,则该方法将无法正常工作,因为它总是会更改第一个结束标记。要修复它,请改用::'>,'>s/.*\zsspan/div/
。看:如何更改行中最后一次出现的字符串?
有关的:
- 如何在匹配的 HTML/XML 标签之间跳转?在 Vim SE
答案3
维姆塔加隆插件可以做到这一点:
答案4
随着SwapIt - 可扩展的关键字交换器,您可以定义标签组,然后可以通过<C-a>
/进行切换<C-x>
。例如,在~/.vim/ftplugin/html_swapit.vim
:
SwapList layout p div span
如果您在同一行上有开始和结束标记(并且只有一种类型),您可以通过我的编辑这两个标记更改全局插件。
还有几个“多光标”插件,它们允许您标记某些单词并立即编辑它们。