最近、ESCキーがホットです。ESCキーは、bashでも役に立ちます。ここでは、私がbashのコマンドライン入力で日頃便利に使っているESCキー操作を紹介します。
ESC+Backspace
Ctrl-Wを打つと、カーソル左の1単語を削除します。この場合の1単語は、空白区切りです。
/path/to/some/dir
のようなパス名を入力した直後に、1ディレクトリ分(この場合は“dir”)を削除する場合には、Ctrl-WではなくESC+Backspaceを打ちます。
ESCが左手、Backspaceが右手ということで、わりといいリズムで打てます。
ESC+.
コマンドラインで同じ引数を続けて入力することがあります。
$ mkdir /path/to/some/dir
$ cd /path/to/some/dir
そこで、2回目の引数を手で打つかわりにESC+.を打ちます。
$ cd 《ここでESC+.》
すると、前のコマンドラインの最後の引数が入ります。
$ cd /path/to/some/dir
ESC+.を繰り返すと、Ctrl-Pなどと同様に、どんどん遡ります。
これも、ESCが左手、.が右手ということで、わりといいリズムで打てます。
ESC+Ctrl-Y
ESC+.の反対に、前のコマンドラインの最初の引数が入ります。
たとえば、こんなコマンドを実行します。
$ cp foo /path/to/some/dir
そのあと、fooをls -lしたい場合、にESC+Ctrl-Yを使います。
$ ls -l 《ここでESC+Ctrl-Y》
するとこうなります。
$ ls -l foo
これは、左手→左手+右手のリズムですね。
数引数
bashでのキー操作には数引数を渡すことができます。数引数の指定には、コマンドにESC+<数字>を前置します。
たとえば、ESC+3+Ctrl-Pとすると、Ctrl-Pを3回打ったのと同じことになります。
前項で紹介したESC+Ctrl-Yの場合は、数引数を指定すると、n番目の引数が現在位置に入ります。たとえば、先に次のコマンドを実行したものとします。
$ cp -r foo /path/to/some/dir
そのあとのコマンドラインで、ESC+2+ESC+Ctrl-Yを打つと、「foo」が入ります。
$ ls -l 《ここでESC+2+ESC+Ctrl-Y》
まとめ
ほかにもbashで使えるESCキー操作はありますが、とりあえずこんなところで。
ESCって便利ですね。