0

を使用して、括弧内に存在する (一致した) テキストを強調表示したとしましょう

/(.*)

ここで、強調表示されたテキストのみ (つまり、行全体ではなく一致するパターン) をバッファーにコピーして、どこかに貼り付ける方法を説明します。

4

3 に答える 3

2

この 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>)
于 2013-02-08T07:53:54.513 に答える
1

検索するときは、eフラグを使用して試合の最後まで移動できます。だから私があなたの質問を正しく理解しているなら、あなたが例えばを使って検索したなら:

/bar

そして、それをコピーしたい場合は、次を使用します。

y//e

これにより、一致が終了するまで前の検索パターンを使用してヤンクされます。

于 2013-02-08T07:13:16.387 に答える
1
于 2013-02-08T07:54:53.340 に答える