Vimで、式用コマンドラインモードの履歴をコピーする方法
Vimでは、ノーマルモードでのp
, P
によるレジスタ貼り付け以外に、挿入モードでのCTRL-R
からの貼り付けがある。
貼り付けられるレジスタにはいくつか特殊なものがあるが、特に=
の挙動は変わっていて、これを入力すると、式用のコマンドラインモードになる。
このモードで入力した文字列は式として評価され、その戻り値が貼り付けられる。
簡単だが式が長くなるような計算などで便利でよく使うのだが、今回、入力した式の方を後から再利用したくなった。
コマンドラインモードの履歴を扱うには、コマンドラインウィンドウを開けばいい。
通常のコマンドラインモード用なら、q:
でおっけー。:q
を打ち間違えることで出てきたりするので、多分みんな知ってる。
検索用ならq/
, q?
.
だが、式用のキーバインドが見つからない。q=
にはなにも割り当てられていないようだし。
ということで:h q:
から調べてみたところ、
1. コマンドラインモードで、オプション 'cedit' で指定されたキーを使う。 'compatible' がオフのときの既定値は CTRL-F である。
これで開けるということだった。今回の場合、i_CTRL-R_=
で式用コマンドラインモードを開いた上で、CTRL-F
を入力することで行けた。
便利。とはいえq=
も欲しかった。