を使用して、括弧内に存在する (一致した) テキストを強調表示したとしましょう
/(.*)
ここで、強調表示されたテキストのみ (つまり、行全体ではなく一致するパターン) をバッファーにコピーして、どこかに貼り付ける方法を説明します。
この Vim Tips Wiki ページには、複数のアプローチが示されています。最も簡単な方法は、次のカスタム コマンドです。
function! CopyMatches(reg)
let hits = []
%s//\=len(add(hits, submatch(0))) ? submatch(0) : ''/ge
let reg = empty(a:reg) ? '+' : a:reg
execute 'let @'.reg.' = join(hits, "\n") . "\n"'
endfunction
command! -register CopyMatches call CopyMatches(<q-reg>)
検索するときは、e
フラグを使用して試合の最後まで移動できます。だから私があなたの質問を正しく理解しているなら、あなたが例えばを使って検索したなら:
/bar
そして、それをコピーしたい場合は、次を使用します。
y//e
これにより、一致が終了するまで前の検索パターンを使用してヤンクされます。