読者です 読者をやめる 読者になる 読者になる

Vimで、式用コマンドラインモードの履歴をコピーする方法

Vimでは、ノーマルモードでのp, Pによるレジスタ貼り付け以外に、挿入モードでのCTRL-Rからの貼り付けがある。

貼り付けられるレジスタにはいくつか特殊なものがあるが、特に=の挙動は変わっていて、これを入力すると、式用のコマンドラインモードになる。

このモードで入力した文字列は式として評価され、その戻り値が貼り付けられる。

簡単だが式が長くなるような計算などで便利でよく使うのだが、今回、入力した式の方を後から再利用したくなった。

コマンドラインモードの履歴を扱うには、コマンドラインウィンドウを開けばいい。

通常のコマンドラインモード用なら、q:でおっけー。:qを打ち間違えることで出てきたりするので、多分みんな知ってる。

検索用ならq/, q?.

だが、式用のキーバインドが見つからない。q=にはなにも割り当てられていないようだし。

ということで:h q:から調べてみたところ、

1. コマンドラインモードで、オプション 'cedit' で指定されたキーを使う。
   'compatible' がオフのときの既定値は CTRL-F である。

これで開けるということだった。今回の場合、i_CTRL-R_=で式用コマンドラインモードを開いた上で、CTRL-Fを入力することで行けた。

便利。とはいえq=も欲しかった。