2013年2月14日木曜日

bashのキーバインドで、control + pキーと上矢印キーの機能を変えると便利

bashの設定で、意外と便利に使えるキーバインドを紹介します。

control + p, n キーや上下矢印で、シェル上で入力したコマンド履歴を遡ったり戻ってきたりして使うことも多いと思います。
私は、control + p, nキーはそのままコマンド履歴をひとつひとつ上下するようにしていますが、上下矢印キーは以下の設定に変更しています。
~/.bashrcファイルなどbash起動時に読み込まれるファイルに以下を記述します。

# 上矢印キー
bind '"\e[A": history-search-backward'
# 下矢印キー
bind '"\e[B": history-search-forward'

このコマンドは、コマンド履歴を検索するようにキーバインドの変更をしています。
例えば、コマンドを途中まで入力して上矢印キーを押すと、その入力した文字列で始まるコマンド履歴を辿ってくれます。
具体的な例を示します。
コマンド履歴が以下のようになっているとします。

100  man info
101  port info
102  port outdated
103  sudo port selfupdate
104  port outdated
105  port -R -y upgrade ruby19
106  port dependents ruby19
107  sudo port -v upgrade ruby19 2>&1 | tee ruby19.txt
108  ls
109  less ruby19.txt
110  cp ruby19.txt trash
111  cd trash
112  ls
113  rm trash
114  cd -


ここで、コマンド行に"c"と入力し、上矢印キーを押していくと順に
cd -
cd trash
cp ruby19.txt trash

と表示されます。
また、はじめに"cp"と入力し、上矢印キーを押すといきなり

cp ruby19.txt trash
の行が表示されます。
同様に、"s"キーを押してから上矢印キーを押すと
sudo port -v upgrade ruby19 2>&1 | tee ruby19.txt
の行が表示されるので、左右キーで移動して修正して別のMacPortsのportをアップグレードしたり等の繰り返しが簡単になります。基本的には、一連のコマンドシーケンスを繰り返す時に、スクリプトを書くほどのものではないという程度の時に重宝しています。
慣れると手放せなくなりますよ。

0 件のコメント:

コメントを投稿