一致するHTMLタグペアの1つのメンバーを変更した場合、他のメンバーも自動的に一致するように変更されるようにVimを構成するにはどうすればよいですか?
たとえば、に<span>content</span>
変更したい場合は、終了が自動的にに変更されます。最良のケースは、挿入モードから通常モードに戻るときに発生しますが、そのために特別なキーバインディングを押す必要がある場合は問題ありません。<span>
<div>
</span>
</div>
答え1
優秀サラウンド.vimこれを簡単に行います。変更したいラベル内の任意の場所にカーソルを置き、通常モードでcst<div>
(c
hangeのs
周りにt
ag to <div>
)を入力します。オープンタグとクローズタグの両方のタグ名が「div」に変更され、通常モードに戻ります。
答え2
以下はいくつかのステップです。
- 最初のラベルにカーソルを置きます。
- 押す:外部HTMLコードを選択しますvat。
Escビジュアルモードを終了するには、キーを押して次のように入力します。
:'<,'<s/span/div/ :'>,'>s/span/div/
この方法は、
:'>,'>s/span/div/
同じ行に同じ閉じるタグが2回表示されると正しく機能しません。これは常に最初の閉じるタグを変更するためです。問題を解決するには、以下を使用してください:'>,'>s/.*\zsspan/div/
。望むより:1行で最後の文字列の発生を変更するには?
関連:
- 一致するHTML / XMLタグ間を移動する方法は?Vim SEから
答え3
ウィムしたがって、タグプラグインは次のことができます。
答え4
とともにSwapIt - 拡張可能なキーワード交換、タググループを定義してから<C-a>
/に切り替えることができます<C-x>
。たとえば、次のようになります~/.vim/ftplugin/html_swapit.vim
。
SwapList layout p div span
同じ行に開くタグと閉じるタグがあり、1つのタイプしかない場合は、myを使用して両方のタグを編集できます。グローバルプラグインの変更。
特定の単語を表示してすぐに編集できる複数の「マルチカーソル」プラグインもあります。