118

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

:%s/$maximumTotalAllowedAfterFinish/$minimumTotalAllowedAfterFinish/g

これらの長い変数名を検索行にコピーする方法はありますか? コマンド ラインでは " p" と入力して貼り付けることはできません。

4

7 に答える 7

146

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

:he cmdline-editing

詳細については。

于 2008-09-19T11:56:42.213 に答える
62

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

于 2008-09-19T12:00:34.980 に答える
16

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

于 2008-09-19T11:54:00.333 に答える
3

または、コマンドを vim buffer に作成します。たとえば、バッファーに入力します。

s/foo/bar/gci

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

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

:[OPTIONAL_RANGE]@a

いつも使っています。

于 2008-09-19T13:06:45.540 に答える
2

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

もう 1 つの方法は、コマンド/検索行をテキスト バッファーに書き込み、テキスト バッファーで使用可能なすべての編集を:行います。

"add@a

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

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

:%s/$maximumTotalAllowedAfterFinish/$minimumTotalAllowedAfterFinish/g

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

于 2008-09-19T11:55:11.827 に答える