概要
プログラミングやファイルの操作などでCUIでの操作をメインにするようになると、ターミナルでの操作を1日に数百回、数千回の単位で行うようになります。
そのときに今まで限られたショートカットしか使っていなかったのですが、ショートカットを使って効率化できると、時間の節約になると思い、まとめていみました。
環境
$ bash --version
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin18)
Copyright (C) 2007 Free Software Foundation, Inc.
ターミナル(bash)上でman bash
を入力することでbashの説明を見ることができます。
今回は、キーバインドをみたかったので、
/key bindings
で検索すると目的の箇所を見ることができます。
カーソル移動、文字の削除
Ctrl+A,E,U,Kだけでもだいぶ楽になります。
参考
https://qiita.com/odacoh/items/b94be0deecaaa27b0263
http://yonchu.hatenablog.com/entry/20110214/1297662332
よく使うキー | 動作 |
---|---|
Ctrl + A | カーソルを先頭に移動 |
Ctrl + E | カーソルを末尾に移動 |
ESC + F | カーソルを1単語進める |
ESC + B | カーソルを1単語戻る |
Ctrl + U | カーソル位置から行頭までを削除 |
Ctrl + K | カーソル位置から行末までを削除 |
Ctrl + W | カーソル位置から単語の先頭までを削除 |
ESC + D | カーソルから単語の末尾まで削除 |
ESCを使う操作での注意
ESC + F,Bの操作で戸惑ったのは、連続で複数の単語間を移動したい場合に、
例えばこの例で、行末からcpまで移動したい場合
$ mv fileA dirB & cp fileC dirB
ESC を押しっぱなしにして、Bを2回連続でいくと、2回目のbは普通の入力とと判定されてしまうので、
mv fileA dirB & cp fileC bdirB
というように、1単語分戻ったあと、bが入力されてしまうことになります。
そのため、2単語分戻りたい場合は、Esc+b Esc+bともう一度Escキーから指を話してキーを押しなおす必要があります。
雑感:一文字の移動、操作について
また、僕は一文字進めるぐらいなら矢印キーを使ってもかわらない気もするので、Ctrl+B,Ctrl+Fなどは使っていませんが、常にホームポジションから動かずに全ての操作をしたいという人には一文字移動や、一文字削除のキーバインドも覚えるといいと思います。
Metaキーの変更
上にスクショしたbashのマニュアルをみて貰えばわかりますが、ESCキーを押しましょうと僕が書いているところは、マニュアルではM-
と表記してあります。
これは、Metaキーの略です。
Metaキーが標準ではESCに割り当てられているみたい(Altキーにも割り当て?)なので、説明ではESC+と書いていたのですが、ESCキーはキーボードの一番左上にあるので、押しにくいですよね。
しかもESCを使う操作での注意 で書いたように連続しての入力の際に、いちいちキーを押しなおす必要があるという欠点があります。
これらの問題は、Metaキーをoptionにも割り当てることで解決されます。
参考:http://playet.jugem.jp/?eid=167
ターミナル -> 環境設定 -> プロファイル -> キーボード で
メタキーとしてOptionキーを使用にチェックを入れるとOptionキーがMetaキーとして使えるようになります。