34
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ターミナル/シェルでの効率的なカーソル移動/文字の削除

Posted at

傍で人のターミナルの操作を見ていて, なんともいえない気持ちになることがあります.

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 を入力します.
どういう意味? こういうことです.

  1. Ctrlキーを押しながら [ を押す
  2. b を押す

Ctrl+[ を代替する方法はいくつかあります.

  • Esc, b
  • alt+b (Windows)
  • option+b (macos)

Escキーと Ctrl+[ はターミナルのなかでは同じコードが送信されます.
alt+boption+b は一見すると使いやすいように感じます.

キーボードのホームポジションを崩しづらいのは, Ctrl+[ を使うことです.
作業環境の変化 (Windows, macos, キー配列) に強いのもこっちです.

連続したキー入力を識別する操作は他にもあったりします.

  • dockerコンテナのなかからデタッチしたいときに Ctrl+p, Ctrl+q
  • systemd-nspawn を終了したいときに Ctrl+], Ctrl+], Ctrl+]
  • tmuxのプリフィクスキー

補足 Control (Ctrl) キーは「a」キーの左が良い

Ctrlキーの位置って, キーボードによって変わることがあります.
Windows向けノートパソコンだとそれが顕著かなと思います.

Ctrlキーは「a」キーの横 (日本語向けキーボードの場合はたいてい Caps Lockキーがある) に配置したほうが, ほとんどのケースで入力効率が高いです.

キー配列を入れ替える手段はたくさんあります.

34
19
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
34
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?