Ctrl+rでコマンド実行履歴を検索して、通り過ぎてしまったときの対処法


svn copy でブランチを作る等、長いコマンドを実行する場合によく Ctrl+r でコマンド実行履歴検索(reverse-i-search)を使っています。

これを使うと過去に実行したコマンドをぱっと検索できるので楽です。

Ctrl+r を入力後、 copy と入力して、再度Ctrl+rを入力すると copy という検索ワードで過去のコマンドが検索されます。

Ctrl+r を入力する度に、ひとつ前の結果へと遡っていきます。

ただ、これまで使ってて気になっていたのが、検索時に該当箇所を通り過ぎてしまった場合、一つ前に戻る事ができないということでした。

調べてみると、スクリーンロックに割り当てられているショートカットを解除すれば Ctrl+s で一つ前の結果に戻れるとのこと。

shellの設定ファイル(.bashrc、.zshrc等)に下記コマンドを追記して、再読み込みすれば、 Ctrl+s が使用可能になります。

# ~/.bashrc
# スクリーンロックのショートカットを解除
stty stop undef
stty start undef

これで快適になりました。

参考URL