傍で人のターミナルの操作を見ていて, なんともいえない気持ちになることがあります.
ubuntu@b215f2bf0b47:~$ echo hello world
^ <- カーソル位置
「入力コマンド間違えた. 消そう (Back Spaceキー押しっぱなしでしばし待機……)」
あるいは
「あっ, コマンドの実行時間を測定しないといけないから, 先頭に time 加えよう. カーソル位置を先頭へ移動 (左矢印キー押しっぱなしで待機……)」
それもっと簡単にできます.
ターミナル/シェルにおけるカーソル移動と削除
- 削除系
-
Ctrl+uカーソル位置から行頭まで削除 (重要) -
Ctrl+wカーソル位置から後側にある一単語分を削除 (重要) -
Ctrl+dカーソル位置の後ろにある文字を削除 (Back Space キー相当) -
Ctrl+hカーソル位置にある文字を削除 (Delete キー相当)
-
- 移動
-
Ctrl+aカーソル位置を行頭へ移動 (重要) -
Ctrl+eカーソル位置を行末へ移動 (重要) -
Ctrl+[,bカーソル位置を後ろ方向へ一単語分 移動 -
Ctrl+[,fカーソル位置を前方向へ一単語分 移動 -
Ctrl+bカーソル位置を後ろ方向へ一文字分 移動 (左矢印キー相当) -
Ctrl+fカーソル位置を前方向へ一文字分 移動 (右矢印キー相当)
-
「重要」したものは, 作業効率に大きく直結します.
それ以外のものも, 一般的な配列のキーボードを使っている限り, キーボードのホームポジションを保てる点でより効率的です.
この操作方法は特定のソフトウェアのキーボード・ショートカットというわけではなく,
ターミナル内で動くソフトウェアでほぼ普遍的に使えるものです.
覚えて周りと差をつけよう.
補足 Ctrl+[ について
カーソル位置を一単語分だけ手前に移動する場合は, Ctrl+[, b を入力します.
どういう意味? こういうことです.
- Ctrlキーを押しながら
[を押す -
bを押す
Ctrl+[ を代替する方法はいくつかあります.
-
Esc,b -
alt+b(Windows) -
option+b(macos)
Escキーと Ctrl+[ はターミナルのなかでは同じコードが送信されます.
alt+b や option+b は一見すると使いやすいように感じます.
キーボードのホームポジションを崩しづらいのは, Ctrl+[ を使うことです.
作業環境の変化 (Windows, macos, キー配列) に強いのもこっちです.
連続したキー入力を識別する操作は他にもあったりします.
- dockerコンテナのなかからデタッチしたいときに
Ctrl+p,Ctrl+q - systemd-nspawn を終了したいときに
Ctrl+],Ctrl+],Ctrl+] - tmuxのプリフィクスキー
補足 Control (Ctrl) キーは「a」キーの左が良い
Ctrlキーの位置って, キーボードによって変わることがあります.
Windows向けノートパソコンだとそれが顕著かなと思います.
Ctrlキーは「a」キーの横 (日本語向けキーボードの場合はたいてい Caps Lockキーがある) に配置したほうが, ほとんどのケースで入力効率が高いです.
キー配列を入れ替える手段はたくさんあります.