Vimの%
演算子は、対応する括弧、コメントの終わりなどにジャンプします。ただし、XMLタグ(または私の知る限りの他のタグ)とは一致しません。
Vimを使用して一致するXMLタグにジャンプする最良の方法は何ですか?
注: 私が本当にやりたいことは、一致するタグを手動で探すことなく、XMLファイルのセクションを複製することです。
Vimの%
演算子は、対応する括弧、コメントの終わりなどにジャンプします。ただし、XMLタグ(または私の知る限りの他のタグ)とは一致しません。
Vimを使用して一致するXMLタグにジャンプする最良の方法は何ですか?
注: 私が本当にやりたいことは、一致するタグを手動で探すことなく、XMLファイルのセクションを複製することです。
回答:
matchit.vimと呼ばれるvimプラグインがあります。ここで見つけることができます:http : //www.vim.org/scripts/script.php?script_id=39。それはあなたが説明するまさにその正確な目的で作成されました。
それをインストールし、カーソルをタグの本文に置き(<>ではなく、それと一致します)、%を押して他のタグにジャンプします。スクリプトのページを参照して、他に何が一致するかを確認してください。
runtime macros/matchit.vim
それを有効にし、%
XMLタグの照合を許可する必要があります。
packadd! matchit
し.vimrc
て有効にします。続きを読む:help matchit
追加のプラグインなしでこれを行うことができます:
別の便利な操作は次のとおりですvit。-タグのコンテンツを選択します(内部)。
更新(@elradoに感謝)例:vitoタグの内部コンテンツを選択し、選択したテキストの先頭にカーソルを置くことができます。
リファレンス:https : //superuser.com/questions/182355/how-can-i-select-an-html-tags-content-in-vim
Vimのリファレンス(これを指摘してくれた@Geekに感謝):
:help visual-operators
あなたが得るでしょう:
4. Operating on the Visual area *visual-operators*
The objects that can be used are:
...
at a <tag> </tag> block (with tags) |v_at|
it inner <tag> </tag> block |v_it|
...
cit
変更私だけのコンテンツ- nteriorタグのを。cat
変更内容と-タグのLL タグ自体LSO、開閉の両方を。
OPは、彼が本当にやりたかったことは、一致するタグを見つけることなくXMLのセクションをコピーすることだと述べました。これはyat<motion>p
、を使用して通常モードで簡単に実行できます。これにより、一致するタグを含めてテキストを内部にヤンクしてから貼り付けます。 yit<motion>p
ほぼ同じですが、外側のタグは含まれていません。
文字列の「y」は、通常のモードの「yank」コマンドです。(:help y
)
a
または、ビジュアル選択i
などの演算子の後のオブジェクト選択に使用できますy
。a
またはの後の記号は、i
何を選択するかを指定します。t
ここで使用するオブジェクトタイプは、SGMLタグを示します。(:help object-select
)。
もちろん<motion>
、それはあなたが選んだ手段でどこかに移動しp
、ヤンクしたテキストをその場所に置くことを意味します。
i
「内側」(または「内側」)を表します。a
「a」の略ですか?
a
は「すべて」を表します。
a
が周りを表すことです。私にはもっと理にかなっています。