挿入モードでは、Ctrlr/(を参照:h "/
)は検索レジスタの内容を貼り付けます。ただし、で単語を検索し*て検索レジスタを貼り付けると、特殊な単語境界文字\<
とが挿入され\>
ます。または、運が良ければ'を取得する可能性があります\Vsearch
。これはばかげていると思いますが、VIMには私の人生を困難にする理由があると確信しています。特別なvimマジックキャラクターなしで検索レジスタのコンテンツを取得するにはどうすればよいですか?
2 に答える
なぜ検索レジスタに前の検索パターン以外のものを含める必要があるのでしょうか。@/
一致ではなく、パターンが含まれています。
あなたがそうするならば、それは正常であり、あなたがレジスター/\Vfoo*bar
に入ることが期待されます。あなたが得る場所についても同じです…検索レジスタのポイントは、さらなる検索と置換のために再利用されます。それがの代わりに含まれている場合、あなたはそれを行うことができませんでした。\Vfoo*bar
/
/foo\*bar
foo\*bar
foo*bar
\Vfoo*bar
n
N
:s//baz
verynomagic
設定できるオプションがないので~/.vimrc
、貼り付ける前にレジスターの内容を入れ替えることができると思います。
fee faa foo*bar baz bam
/\Vfoo*bar<CR>
:reg /<CR>
\Vfoo*bar
:let @a = substitute(@\, '\\V', '', '')<CR>
"ap
foo*bar
たぶん、置換と貼り付けを一度に行うマッピングを作成できます。
しかし、私はあなたが本当に望んでいるのは、検索パターンではなく、一致したテキストを再利用することであるという予感があります。私が正しければ、考えられる解決策についてこのヒントを参照してください。
検索レジスタには、 「特殊文字」が含まれていない(単純/foo
検索)、少ない(\<cword\>
*コマンドから検索)、または多い( )場合があります。^\%(foo\|bar\)\w\+!\?
最初の2つについては、通常1つの一致があり、最後の2つについては、多くの一致があります。
最初は、特別な正規表現アトムをフィルターで除去するマッピングを使用しましたが、次に、一致を挿入するための挿入モードとコマンドラインマッピングを提供するより一般的なPatternCompleteプラグイン(公開されたばかり)を作成しました。また、正規表現を入力して、すべての一致を挿入することもできます。