Ex コマンドは通常、行全体で機能します。ただし、コマンドを使用して、:sすべての一致をレジスタに「キャプチャ」し、ドキュメントの最後に貼り付けることができます。
:let @a=""
:%s//\=matchstr(setreg('A',submatch(0),'l'),'')/g
:$put a
説明:
a経由でレジスタを消去しますlet @a=""
- 最後に使用した検索パターンを置き換えます:
%s//....
\=置換として式 を使用します
submatch(0)一致したパターンを表します
a次の方法で、一致するパターンを行ごとにレジスタに追加します。setreg('A',submatch(0),'l')
- ゼロを返すので
setreg()、基本的には空の文字列に変換するために matchstr() を使用します
- フラグを使用して、
/g1 行に複数回一致させる
- レジスターで収集された一致
aを、文書の最後に貼り付けます。$pu a
詳細については、次を参照してください。
:h :let
:h :s
:h range
:h :s\=
:h submatch(
:h setreg(
:h matchstr(
:h :pu
:h registers