シェルのコマンドライン編集を知った。
コマンドライン上でemacsやviのキーバインドができることを知った。
編集モードを切り替える方法は2つある。
setコマンドを使う
#emacsモード希望なら $ set -o emacs #viモード希望なら $ set -o vi
readline変数を設定する方法
詳しい説明は省きます。
bashのコマンドライン編集インターフェースはreadlineで、そのreadlineのデフォルトの起動ファイルが.inputrcです。
そういうわけで、.inputrcに次の記述を追加します。
#emacsモードを希望の場合 $ set editing-mode emacs #viモードを希望の場合 $ set editing-mode vi
ESCを押すのが面倒
僕は、viが好きなのでviモードのコマンドラインにしています。
でも、コマンドモードに切り替えるのに、ESCを押すのが面倒です。
Control+[にバインドされているのですが。それでも、まだ面倒です。
今は、以下の記述を.inputrcに追加してControl+jにバインドしています。
"\C-j": vi-movement-mode
readlineについて日本語のマニュアルが載ってます。
http://www.jp.freebsd.org/cgi/mroff.cgi?sect=3&cmd=&lc=1&subdir=man&dir=jpman-6.0.0%2Fman&subdir=man&man=readline