b.l0g.jp     About     Archive     Feed

readlineのショートカットまとめ

ということで、調べたついでなのでreadlineのキーボードショートカットをまとめてみた。知らなかったのもあって意外と勉強になる。なお、使っているターミナルによってはAltの代わりに”Esc→キー”を使う必要がある。

ちなみに、readlineを使っているのはbash, zsh, ksh, mysql, psql, ftp, bcなど色々あるがこれらのコマンドラインツールでは基本的に以下のショートカットキーが使える(ソフトウェアによっては全部が全部使えるわけではない)。

カーソル移動系

さすがにここは定番すぎる。

キー入力 動作
Ctrl-b カーソルを左に1文字移動
Ctrl-f カーソルを右に1文字移動
Alt-b カーソルを左に1単語移動
Alt-f カーソルを右に1単語移動
Ctrl-a カーソルを行頭に移動
Ctrl-e カーソルを行末に移動
Ctrl-x-x 入力を始めた位置と現時点のカーソル位置を交互に移動

削除系

この辺は、知っておくと素早くコマンドを修正できるがなかなか覚えられない。

キー入力 動作
Back space カーソルの左の文字を削除
Delete
Ctrl-d
カーソル位置の文字を削除
Ctrl-u 行頭からカーソル位置までの文字を削除
Ctrl-k カーソル位置から行末までの文字を削除
Alt-d カーソル位置から次のスペースまでの文字を削除
Ctrl-w 直前の空白からカーソル位置の1文字前までの文字を削除
Ctrl-y 直前に上の削除コマンドで削除した文字をカーソル位置にペースト
Alt-y n回前に削除した文字をカーソル位置にペースト(入力するたびに前に戻っていく)

ヒストリ系

最後の2つ、引数をペーストするのは知らなかった。そんなに使う感じしないけど。

キー入力 動作
Ctrl-p 1回前に実行されたコマンドを表示
Ctrl-n 1回後に実行されたコマンドを表示
Alt-> 元々入力されていたコマンドを表示
Ctrl-r 現在表示されているものより前に実行されたコマンドをインクリメンタルサーチ
Ctrl-s 現在表示されているものより後に実行されたコマンドをインクリメンタルサーチ
Ctrl-J インクリメンタルサーチを終了
Ctrl-G インクリメンタルサーチを中止して元に戻る
Alt-Ctrl-y 直前のコマンドの第1引数をカーソル位置にペースト
Alt-.
Alt-_
直前のコマンドの最後の引数をカーソル位置にペースト

Undo系

キー入力 動作
Ctrl-_
Ctrl-x Ctrl-u
入力しているコマンドを全部削除
Alt-r 入力している行を全部削除(複数行入力している時にその行だけを消す)
Ctrl-l 表示を全部消して現在入力している行を一番上に表示

オートコンプリート系

Alt-*とかどういう時に使う想定なんだろうか。

キー入力 動作
Tab 入力をオートコンプリート
Alt-?
Tab Tab
オートコンプリートの候補を表示
Alt-* オートコンプリートの候補を全部入力

入れ替え系

このコマンドどちらも知らなかったが、オプションの順序を間違えた時に簡単に入れ替えたりするのにとても重宝する!

キー入力 動作
Ctrl-t カーソルの直前の文字とカーソル位置の文字を入れ替える
Alt-t カーソル位置の前の単語とカーソル位置の単語を入れ替える

その他編集系

これも知らなかった。そんなに使用頻度多くない人もいるだろうが、SQLを入力する時に予約語を大文字で入力したい人とか便利なんじゃないか。

キー入力 動作
Alt-u カーソル位置の単語の、カーソル位置より後を大文字にし、カーソルは単語の最後に移動
Alt-l カーソル位置の単語の、カーソル位置より後を小文字にし、カーソルは単語の最後に移動
Alt-c カーソル位置の単語の先頭文字を大文字にし、カーソルは単語の最後に移動

参考1 : Readline shortcuts

参考2 : GNU Readline Library Documentation


海外の役立つブログ記事などを人力で翻訳して公開するYakstというプロジェクトをやっています。よろしければそちらもどうぞ!