fake-accept - 履歴に登録するだけ
http://journal.mycom.co.jp/column/zsh/003/index.htmlの
もはや漢のスクリプトはコマンド履歴の中にあるものだ。
に触発されて編集中のコマンドの内容(Emacs同様バッファと言う)を履歴に登録するだけのZLE widgetを作ってみた。ソフトウェアのコンパイルなど、試行錯誤の末に正解を発見した場合に、一連のコマンドをまとめたものを履歴に登録したくなる。そうすることで次回同じことをする場合はC-rで履歴検索をすることで自動化された形で取り出すことが可能だ。
history-menuと併用するとテキパキと履歴の内容をバッファに挿入できる。C-M-jかC-M-mかM-RETで改行をバッファに挿入する。
ちなみに名前については「実行するふりをする」意味でfake-acceptだ。コマンドを実行するwidget(RET)の名前はaccept-lineなので、acceptだ。以下を.zshrcに登録しよう。
fake-accept () { print -s "$BUFFER" print " [added to history]" zle send-break } zle -N fake-accept bindkey "^[m" fake-accept
以下が2行のコマンドを履歴に登録した後に、C-pで履歴を呼出している様子だ。カーソルは[*]の位置にある。
$ echo foo echo bar [added to history] $ echo foo echo bar[*]