Vim で変更された HTML タグのペアを変更するにはどうすればよいでしょうか?

Vim で変更された HTML タグのペアを変更するにはどうすればよいでしょうか?

一致する HTML タグのペアの一方のメンバーを変更すると、もう一方も自動的に一致するように変更されるように Vim を構成するにはどうすればよいでしょうか?

たとえば、 の場合、を に<span>content</span>変更すると、閉じるが自動的に に変更されます。挿入モードから通常モードに戻ったときにこれが発生するのが最適ですが、これが発生するように特別なキーバインディングを押さなければならない場合でも問題ありません。<span><div></span></div>

答え1

優れたサラウンド.vimこれは簡単です。変更したいタグ内の任意の場所にカーソルを置き、通常モードでcst<div>( change surrounding tag to <div>) と入力します。開始タグと終了タグの両方でタグ名が "div" に変更され、通常モードに戻ります。

答え2

手順は次のとおりです:

  1. 最初のタグにカーソルを置きます。
  2. を押して外側の HTML コードを選択しますvat
  3. Escビジュアル モードを終了して次のように入力します:

    :'<,'<s/span/div/
    :'>,'>s/span/div/
    

    :'>,'>s/span/div/同じ行に同じ終了タグが 2 回出現すると、常に最初のタグが変更されるため、正しく動作しないことに注意してください。これを修正するには、:'>,'>s/.*\zsspan/div/代わりに : を使用します。参照:行内の文字列の最後の出現を変更するにはどうすればよいですか?

関連している:

答え3

ヴィムついて行くプラグインはこれを実行できます:

Vim の同行

答え4

とともにSwapIt - 拡張可能なキーワードスワッパー<C-a>では、 /を介して切り替えることができるタグ グループを定義できます<C-x>。たとえば、次のようになります~/.vim/ftplugin/html_swapit.vim

SwapList layout p div span

開始タグと終了タグが同じ行にある場合(そしてその種類のタグが1つしかない場合)、私のChangeGloballyプラグイン


また、特定の単語をマークして一度に編集できる「マルチカーソル」プラグインもいくつかあります。

関連情報