bashでCtrl-rでコマンド履歴を後方検索

コンソールを使っていると頻繁にCtrl-pやCtrl-nを利用する。前に打ったコマンドを何度も打ちたくないからだ。出来る限りタイプを少なくしたいからね。

そんな中で重宝するのが、後方検索。前にあのコマンドを打ったけど微かにしか覚えてない・・・あの長いパスをもう一回打ちたくない・・・Ctrl-pで戻るのがしんどい・・・などなど。

そんな時はCtrl-rで検索出来る。例えばsudoって打った時を検索してみようと言う場合は、Ctrl-rの後にsudoと打ってみる。そうするとCtrl-rを押すたびにsudoを検索してくれる。

そしてそして、これも良くあるのだが、行き過ぎた場合がやっかい。一旦escやCtrl-gで抜けた後に再度、後方検索をするのは面倒。実に面倒。

そんな場合は、

#割当状況を確認
$ stty -a

#スクリーンロックを未定義にする
$ stty stop undef
$ stty start undef

#stop=になっているか確認
$ stty -a

これでCtrl-sに割り当ててあるスクリーンロックをオフにする。あとは、Ctrl-rで行き過ぎた場合にCtrl-sで前方検索してくれるので実に便利。
どうせスクリーンロックは使わないとかemacs使うときに邪魔と言う人は、.bashrcだったり.profileだったりに書いておけば面倒な事はなくなる。

Ctrl-sでロックするように戻す場合は下記を実行。まず無いけど・・・

$ stty stop ^S