web-dev-qa-db-ja.com

Vimでは、検索行にテキストを貼り付ける方法はありますか?

$maximumTotalAllowedAfterFinishを検索し、$minimumTotalAllowedAfterFinishに置き換えたい。長いテキストを入力する代わりに:

:%s/$maximumTotalAllowedAfterFinish/$minimumTotalAllowedAfterFinish/g

コマンドラインで「p」と入力して貼り付けることができないため、これらの長い変数名を検索行にコピーする方法はありますか?

99
Edward Tanguay

次のように入力して、番号付きまたは名前付きのレジスタの内容を挿入できます。 CTRLR{0-9a-z"%#:-=.}。入力することにより CTRL-RCTRL-W 現在のWordをカーソルの下に貼り付けることができます。見る:

:he cmdline-editing

詳細については。

121
WMR

通常どおりにコピーしてから CtrlR" 貼り付けます。他にもたくさんあります CtrlR ショートカット(電卓、現在のファイル名、クリップボードの内容など)。タイプ:help c_<C-R>完全なリストを表示します。

49
Ned

タイプq:新しいバッファで履歴編集モードに入ります。次に、バッファーの最後の行を編集し、Enterを押して実行します。

14
Johannes Hoff

コピー:
1)v(または視覚モードでマウスで強調表示)
2)y(ヤンク)

ペースト:
1)/(検索モード)
2)Ctrl + R + 0(ヤンクされたレジスタから貼り付け)

11
Jason

または、vimバッファーでコマンドを作成します。バッファに入力します:

s/foo/bar/gci

そして、"ayy(カーソルがその行にある場合!)を使用して、名前付きレジスタにコピーします。

これで、VimのExコマンドラインから「a」レジスタの内容を実行できます。

:[OPTIONAL_RANGE]@a

いつも使っています。

3
Zsolt Botykai

通常、マウスを選択してそれを行います(おそらく CtrlIns または CtrlC 選択後)、コマンド/検索行で中クリック(または ShiftIns または CtrlV)。

別の方法として、コマンド/検索行をテキストバッファーに記述し、:で始まるすべての編集をテキストバッファーで使用できるようにしてから、その行ですべてを実行します。

"add@a

コマンドライン全体をバッファaに保存してから実行します。ただし、コマンド履歴には保存されません。

上記のキーを押す例として、テキストバッファーに次の行を作成してみてください。

:%s/$maximumTotalAllowedAfterFinish/$minimumTotalAllowedAfterFinish/g

最後に、q:と入力して、テキストバッファーで履歴編集を開始できます。

2
tzot

パターンに追加するWordにカーソルを置いてから、 / または : 検索モードまたはコマンドモードのいずれかを入力して、 CtrlRCtrlW Wordをコピーします。 ソース

0