[勝手にCLI Magic]readlineと暮らす

bashやpsql、mysqlといったコマンドラインインターフェースと暮らすのは、実はreadlineと暮らすことなのです。

readlineってのはコマンドラインでの編集機能を提供するGNUライブラリで、前述のコマンドを含め、たいていのフリーソフトではサポートされているので、基本編集コマンドは是非覚えときましょう。ってことで、俺が日常的に使ってるのをピックアップしてみますた。
上矢印キーを押して履歴が呼び出しできるのを、なんとなく使っている人は多いかもしれませんが、もうちょっとショートカットを覚えとけばかなり便利になります。
Emacs使いには当たり前っぽいショートカットですが、Emacs使わない人にはさっぱりかもしれません。
# 表中ALTとなってるのはホントはMETAなんだけど、実質ALTだろってことで

カーソル移動系
行頭へ CTRL+a 行末へ CTRL+e
一文字進む CTRL+f 一文字戻る CTRL+b
一語進む ALT+f 一語戻る ALT+b

ForwardとBackのfとbを覚えましょう。
CTRL+aやALT+bがすぐ使えるようになると、カーソル移動時に矢印キーに手を伸ばし連打する苦行から開放されます。

編集系
(前の)一文字削除 CTRL+h (後ろの)一文字消去 CTRL+d
(前の)一語削除 CTRL+w 行末まで削除 CTRL+k

CTRL+hとCTRL+dはバックスペースとDELキー相当です。バックスペースやDELキーは、キーボードによって位置がマチマチなんで、やはりCTRL+hとCTRL+dを覚えておくのがイイかと。
CTRL+wとCTRL+kを覚えれば、呼び出したコマンドの引数を変更して実行なんてのはとてもカンタンになります。

ヒストリ系
前のヒストリ呼び出し CTRL+p 次のヒストリ呼び出し CTRL+n
前方インクリメンタル検索 CTRL+r 後方インクリメンタル検索 CTRL+s

CTRL+pとCTRL+nで、履歴をぐるぐるめくることができます。PreviousとNextって覚えてね。
なかなか使いでがあるのが検索機能です。たとえばpsqlで
CTRL+r SELECT CTRL+r CTRL+r
なんてすると、以前入力したSELECT文が順番に呼び出せます。途中でCTRL+sを押すと戻れますし、CTRL+gを押すと検索自体をキャンセルします。
# CTRL+sはttyのstopに割り当てられてるので気をつけてね。”stty stop undef”しておくか、使わないか、です。

これだけ覚えれば、ターミナルでの操作性が3倍ぐらいになってるハズだ!

関連記事

2個のコメント

  1. 2006 年 4 月 27 日 2:57 AM に投稿 | パーマリンク

    readline今までずっと知りませんでした。
    これがあるからみんなhistoryを多めにとるんですね。
    このページをずっと表示させておいてコマンドを忘れるたびに見るようにしています。
    有益な情報いつも参考にさせていただいてます。

  2. 2006 年 4 月 27 日 11:30 PM に投稿 | パーマリンク

    お〜、なんとhaltさんに参考にしてもらえるなんて嬉しいです