
如何配置 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
如果您在同一行上有開始和結束標記(並且只有一種類型),您可以透過我的編輯這兩個標記更改全域插件。
還有幾個“多遊標”插件,它們允許您標記某些單字並立即編輯它們。