傍で人のターミナルの操作を見ていて, なんともいえない気持ちになることがあります.
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キーがある) に配置したほうが, ほとんどのケースで入力効率が高いです.
キー配列を入れ替える手段はたくさんあります.