前々回から、Linuxでデフォルトで使われることが多いインタラクティブシェル「bash」の使い方について解説している。

まず最初に、bashでカーソルを移動させるショートカットキーをまとめた。次にショートカットキーを読む方法をまとめた。今回は、入力するコマンドを編集する方法の一つとして、文字を削除するショートカットキーについてまとめる。カーソルの移動と文字の削除にショートカットキーをうまく活用できるようになると、作業時間をぐっと短縮できるようになるはずだ。

削除に関するショートカットキー

最初に、「bind -p」の出力を見てみよう。OSはUbuntu 20.04を使用している。

daichi@DESKTOP-5NH8DRT:~$ bind -p | grep -v '^#' | lv | sort -k 2 | uniq | grep -v self-insert | column -t
"\e          ":                                      set-mark
"\C-g":      abort
"\C-x\C-g":  abort
"\e\C-g":    abort
"\C-j":      accept-line
"\C-m":      accept-line
"\C-b":      backward-char
"\eOD":      backward-char
"\e[D":      backward-char
"\C-?":      backward-delete-char
"\C-h":      backward-delete-char
"\C-x\C-?":  backward-kill-line
"\e\C-?":    backward-kill-word
"\e\C-h":    backward-kill-word
"\e[1;3D":   backward-word
"\e[1;5D":   backward-word
"\e[5D":     backward-word
"\e\e[D":    backward-word
"\eb":       backward-word
"\e<":       beginning-of-history
"\C-a":      beginning-of-line
"\eOH":      beginning-of-line
"\e[1~":     beginning-of-line
"\e[H":      beginning-of-line
"\e[200~":   bracketed-paste-begin
"\C-xe":     call-last-kbd-macro
"\C-]":      character-search
"\e\C-]":    character-search-backward
"\C-l":      clear-screen
"\C-i":      complete
"\e\e":      complete
"\e!":       complete-command
"\e/":       complete-filename
"\e@":       complete-hostname
"\e{":       complete-into-braces
"\e~":       complete-username
"\e$":       complete-variable
"\C-d":      delete-char
"\e[3~":     delete-char
"\e\\":      delete-horizontal-space
"\e-":       digit-argument
"\e0":       digit-argument
"\e1":       digit-argument
"\e2":       digit-argument
"\e3":       digit-argument
"\e4":       digit-argument
"\e5":       digit-argument
"\e6":       digit-argument
"\e7":       digit-argument
"\e8":       digit-argument
"\e9":       digit-argument
"\C-x\C-v":  display-shell-version
"\C-xA":     do-lowercase-version
"\C-xB":     do-lowercase-version
"\C-xC":     do-lowercase-version
"\C-xD":     do-lowercase-version
"\C-xE":     do-lowercase-version
"\C-xF":     do-lowercase-version
"\C-xG":     do-lowercase-version
"\C-xH":     do-lowercase-version
"\C-xI":     do-lowercase-version
"\C-xJ":     do-lowercase-version
"\C-xK":     do-lowercase-version
"\C-xL":     do-lowercase-version
"\C-xM":     do-lowercase-version
"\C-xN":     do-lowercase-version
"\C-xO":     do-lowercase-version
"\C-xP":     do-lowercase-version
"\C-xQ":     do-lowercase-version
"\C-xR":     do-lowercase-version
"\C-xS":     do-lowercase-version
"\C-xT":     do-lowercase-version
"\C-xU":     do-lowercase-version
"\C-xV":     do-lowercase-version
"\C-xW":     do-lowercase-version
"\C-xX":     do-lowercase-version
"\C-xY":     do-lowercase-version
"\C-xZ":     do-lowercase-version
"\eA":       do-lowercase-version
"\eB":       do-lowercase-version
"\eC":       do-lowercase-version
"\eD":       do-lowercase-version
"\eE":       do-lowercase-version
"\eF":       do-lowercase-version
"\eG":       do-lowercase-version
"\eH":       do-lowercase-version
"\eI":       do-lowercase-version
"\eJ":       do-lowercase-version
"\eK":       do-lowercase-version
"\eL":       do-lowercase-version
"\eM":       do-lowercase-version
"\eN":       do-lowercase-version
"\eP":       do-lowercase-version
"\eQ":       do-lowercase-version
"\eR":       do-lowercase-version
"\eS":       do-lowercase-version
"\eT":       do-lowercase-version
"\eU":       do-lowercase-version
"\eV":       do-lowercase-version
"\eW":       do-lowercase-version
"\eX":       do-lowercase-version
"\eY":       do-lowercase-version
"\eZ":       do-lowercase-version
"\el":       downcase-word
"\e\C-i":    dynamic-complete-history
"\C-x\C-e":  edit-and-execute-command
"\C-x)":     end-kbd-macro
"\e>":       end-of-history
"\C-e":      end-of-line
"\eOF":      end-of-line
"\e[4~":     end-of-line
"\e[F":      end-of-line
"\C-x\C-x":  exchange-point-and-mark
Binary       file                                    (standard  input)  matches
"\C-f":      forward-char
"\eOC":      forward-char
"\e[C":      forward-char
"\C-s":      forward-search-history
"\e[1;3C":   forward-word
"\e[1;5C":   forward-word
"\e[5C":     forward-word
"\e\e[C":    forward-word
"\ef":       forward-word
"\eg":       glob-complete-word
"\C-x*":     glob-expand-word
"\C-xg":     glob-list-expansions
"\e^":       history-expand-line
"\e#":       insert-comment
"\e*":       insert-completions
"\e.":       insert-last-argument
"\e_":       insert-last-argument
"\C-k":      kill-line
"\e[3;5~":   kill-word
"\ed":       kill-word
"\C-n":      next-history
"\eOB":      next-history
"\e[B":      next-history
"\en":       non-incremental-forward-search-history
"\ep":       non-incremental-reverse-search-history
"\C-o":      operate-and-get-next
"\C-x!":     possible-command-completions
"\e=":       possible-completions
"\e?":       possible-completions
"\C-x/":     possible-filename-completions
"\C-x@":     possible-hostname-completions
"\C-x~":     possible-username-completions
"\C-x$":     possible-variable-completions
"\C-p":      previous-history
"\eOA":      previous-history
"\e[A":      previous-history
"\C-q":      quoted-insert
"\C-v":      quoted-insert
"\e[2~":     quoted-insert
"\C-x\C-r":  re-read-init-file
"\e[0n":     redraw-current-line
"\er":       redraw-current-line
"\e\C-r":    revert-line
"\C-@":      set-mark
"\e\C-e":    shell-expand-line
"\C-x(":     start-kbd-macro
"\e&":       tilde-expand
"\et":       transpose-words
"\C-_":      undo
"\C-x\C-u":  undo
"\C-u":      unix-line-discard
"\C-w":      unix-word-rubout
"\eu":       upcase-word
"\C-z":      vi-editing-mode
"\C-y":      yank
"\e.":       yank-last-arg
"\e_":       yank-last-arg
"\e\C-y":    yank-nth-arg
"\ey":       yank-pop
daichi@DESKTOP-5NH8DRT:~$

関数名に「delete」「kill」「discard」といった単語が含まれているものがある。これらはどれも「削除」や「消去」といったニュアンスを持つ単語であり、実際にこの単語が含まれる関数は文字の削除に関連している。抜き出して整理すると、次のようになる。

キー 機能
「Backspace」 カーソルの1つ左の文字を削除
「Ctrl」+「Backspace」 カーソルの1つ左の文字を削除
「Delete」 カーソルのある場所の文字を削除
「Ctrl」+「d」 カーソルのある場所の文字を削除
「ESC」「Backspace」 カーソルの1つ左の文字から単語頭までを削除
「ESC」「Ctrl」+「Backspace」 カーソルの1つ左の文字から単語頭までを削除
「ESC」「d」 カーソルから単語末までを削除
「Ctrl」+「Delete」 カーソルから単語末までを削除
「Ctrl」+「x」「Ctrl」+「Backspace」 カーソルの1つ左の文字から行頭までを削除
「Ctrl」+「u」 カーソルの1つ左の文字から行頭までを削除
「Ctrl」+「k」 カーソルから行末までを削除
「ESC」「\」 連続する空白およびタブを削除する

上記ショートカットキーを、WindowsやUNIX系OSで使われることが多いショートカットキーに絞ってまとめると、次のようになる。

キー 機能
「Backspace」 カーソルの1つ左の文字を削除
「Delete」 カーソルのある場所の文字を削除
覚えやすいのなし カーソルの1つ左の文字から単語頭までを削除
「Ctrl」+「Delete」 カーソルから単語末までを削除
「Ctrl」+「u」 カーソルの1つ左の文字から行頭までを削除
「Ctrl」+「k」 カーソルから行末までを削除

まず、削除に関する操作を整理しよう。削除の単位には主に次の3つがある。

  • 1文字削除
  • 1単語削除
  • 1行削除


単語や行の削除は単語や行丸ごとではなく、「カーソルのある位置から単語の先頭まで」とか「行の先頭まで」といったように範囲が定められている。つまり、削除には方向があり、基本的にカーソルの左側の削除か、カーソルを含めそこから右側の削除、となっている。キーと削除の関係を簡単にまとめると次のような感じになる。

削除 カーソル左側 カーソル含め右側
1文字 「Backspace」 「Delete」
1単語 いくつかあり いくつかあり
1行 「Ctrl」+「u」 「Ctrl」+「k」

「Backspace」キーは左側の削除、「Delete」キーは右側の削除だ。左側と言えば、「Home」キーが行の左端への移動で、「End」キーが行の右端への移動だったことを思い出してほしい。つまり、「Backspace」「Delete」「Home」「End」を使うと、削除の方向性との整合性を取ることができる。左側の削除には「Backspace」キーや「Home」キーを含むショートカットキーを使い、右側の削除には「Delete」キーや「End」キーを含むショートカットキーを使えば覚えやすいということだ。

つまり、理想的には削除に関するショートカットキーは次のようであってくれると覚えやすい。

削除 カーソル左側 カーソル含め右側
1文字 「Backspace」 「Delete」
1単語 「Ctrl」+「Backspace」 「Ctrl」+「Delete」
1行 「Ctrl」+「Home」 「Ctrl」+「End」
キー 機能
「Backspace」 カーソルのひとつ左の文字を削除
「Delete」 カーソルのある場所の文字を削除
「Ctrl」+「Backspace」 カーソルの1つ左の文字から単語頭までを削除
「Ctrl」+「Delete」 カーソルから単語末までを削除
「Ctrl」+「Home」 カーソルの1つ左の文字から行頭までを削除
「Ctrl」+「End」 カーソルから行末までを削除

上記ショートカットキーはWindowsで使われている削除のショートカットキーと同じだ。PowerShell (PSReadLineモジュール)もまったくこれと同じだし、このキーを削除に当てているアプリケーションは多い。つまり、上記ショートカットキーがbashでも使えると何かと使えるのである。

前回まではデフォルトの設定のまま使っていたが、今回からはショートカットキーを設定する方法も含めて行っていく。

Windowsに合わせる

まずWindowsからLinuxサーバにアクセスして使うことを想定して設定を行う。ターミナルアプリケーションとしてはWindows Terminalを使うことを前提とする。ターミナルアプリケーションを限定する必要があるのか不思議に思うかもしれないが、説明する上ではターミナルアプリケーションを限定する必要があるのだ。

readlineの設定は~/.inputrcファイルに書くのだが、ここに書き込むキー表記がターミナルアプリケーションごとに微妙に異なっている。このため、どのターミナルアプリケーションを使用するかを書いておかないと、設定をコピーしても使えないことがあるのだ。まずはWindows Terminalの設定を取り上げるので、ほかのターミナルアプリケーションを使っている場合にはそちらのターミナルアプリケーションのキー表記へ変更してもらえればと思う。

まず、足りないキーを整理する。次のように欲しいショートカットキーのうち、3つは最初から定義されており、残りの3つが足りない。

削除 カーソル左側 カーソル含め右側
1文字 「Backspace」 「Delete」
1単語 「Ctrl」+「Delete」
1行

先に答えを書いてしまうと、次のような設定を~/.inputrcに追加すれば、欲しいショートカットキーを追加することができる。

"\C-h": backward-kill-word  # Ctrl-Backspace
"\e[1;5H": unix-line-discard    # Ctrl-Home
"\e[1;5F": kill-line        # Ctrl-End

これで次のような状態になる。

削除 カーソル左側 カーソル含め右側
1文字 「Backspace」 「Delete」
1単語 「Ctrl」+「Backspace」 「Ctrl」+「Delete」
1行 「Ctrl」+「Home」 「Ctrl」+「End」
キー 機能
「Backspace」 カーソルのひとつ左の文字を削除
「Delete」 カーソルのある場所の文字を削除
「Ctrl」+「Backspace」 カーソルの1つ左の文字から単語頭までを削除
「Ctrl」+「Delete」 カーソルから単語末までを削除
「Ctrl」+「Home」 カーソルの1つ左の文字から行頭までを削除
「Ctrl」+「End」 カーソルから行末までを削除

Windowsだけ使っているのであれば、これで目標達成だ。

Macに合わせる

しかし、である。Macで同じ設定を使おうとするとうまくいかない。WindowsでLinuxが使用できるようになったのはここ数年の話だ。ターミナル環境としてはMacのほうがもともと充実しており、ターミナルアプリケーションユーザーはMacにも多い。MacからLinuxサーバにアクセスして利用するユーザーも当然多いということになる。

Windowsでは次のショートカットキーへ整えた。

削除 カーソル左側 カーソル含め右側
1文字 「Backspace」 「Delete」
1単語 「Ctrl」+「Backspace」 「Ctrl」+「Delete」
1行 「Ctrl」+「Home」 「Ctrl」+「End」

しかし、これはMacでは機能しない。まず、Macでは「Backspace」キーも「Ctrl」+「Backspace」も同じキーとして認識される。キーとして区別されないので、そもそも「Backspace」キーと「Ctrl」+「Backspace」別のキーに割り当てようとしてもうまくいかない。

そして「Home」キーと「End」キーだ。Macのターミナルアプリケーションは「Home」キーと「End」キーをbashに渡す前に、ターミナルのページスクロールショートカットキーとして処理してしまう。つまり、「Home」キーと「End」キーはbashまで到達しないのだ。このため「Ctrl」+「Home」と「Ctrl」+「End」もMacでは使用できない(Macのターミナルアプリケーションではなく、サードパーティのターミナルアプリケーションを使うと「Home」キーと「End」キーも使えるのだが、ここではMacに最初からインストールされているターミナルアプリケーションを前提として話をまとめておく)。

Vimのときに取り上げたが、「Ctrl」+「Home」と「Ctrl」+「End」に相当する処理はUNIX系OSでは「Ctrl」+「U」と「Ctrl」+「K」に割り当てられていることが多い。bashでもデフォルトではこのキーに割り当てられている。これに関してはデフォルトキーを使うとしよう。

「Ctrl」+「Backspace」と「Ctrl」+「Delete」に関しては、なるべく似たキーということで「ESC」「Backspace」と「ESC」「Delete」はどうだろうか。

つまり、Macでは次のショートカットキー設定を理想としてみよう。

削除 カーソル左側 カーソル含め右側
1文字 「Backspace」 「Delete」
1単語 「ESC」「Backspace」 「ESC」「Delete」
1行 「Ctrl」+「u」 「Ctrl」+「k」
キー 機能
「Backspace」 カーソルの1つ左の文字を削除
「Delete」 カーソルのある場所の文字を削除
「ESC」「Backspace」 カーソルのひとつ左の文字から単語頭までを削除
「ESC」「Delete」 カーソルから単語末までを削除
「Ctrl」+「u」 カーソルの1つ左の文字から行頭までを削除
「Ctrl」+「k」 カーソルから行末までを削除

「ESC」「Backspace」は最初から設定されているので、「ESC」「Delete」だけを設定すれば良いことになる。つまり、Macの場合は次の設定を~/.inputrcに追加すれば、求めるショートカットキーを実現できることになる。

"\e\e[3~": kill-word        # ESC Delete

WindowsでもMacでもできるだけ同じショートカットキーが使えたほうが便利ではあるのだが、歴史的な背景による互換性の問題や、プラットフォームごとの癖などもあって、完全に同じ状態にすることは難しい。こればかりは仕方ないところだ。

Windows TerminalやMac Terminal以外を使う方法

Windows TerminalおよびMac Terminalで使用できるキー表記についてはよく使いそうなものを付録として稿末に掲載しておくので、そちらを参考にしてもらえればと思う。問題は、これらのターミナル以外のターミナルアプリケーションを使う場合のキー表記をどのように調べればよいか、だろう。Windows TerminalやMac Terminalでも表に掲載されていないキー表記をどうすればよいかという問題がある。

その場合には「Ctrl」+「V」を使う方法がお薦めだ。多くのターミナルアプリケーションが「Ctrl」+「V」を入力すると、それに続く入力をそのまま表示するという機能を持っている。つまり、使いたいショートカットキーを「Ctrl」+「V」に続いて入力すれば、それの指すキー表記を手に入れられる、ということだ。

アプリケーションによっては「Ctrl」+「V」はオプション機能になっていることもあるので、設定をよく確認してから試していただきたい。エスケープの出力を「\e」に書き換えるなど多少の編集は必要になるが、「Ctrl」+「V」を使うことでかなりの手助けとなるはずだ。

付録:bashのお薦めショートカットキー

キー 操作
「→」 カーソルを1文字右へ移動
「←」 カーソルを1文字左へ移動
「Home」 カーソルを行頭へ移動
「End」 カーソルを行末へ移動
「Ctrl」+「→」 カーソルを単語の末尾へ移動、すでに単語の末尾の場合は、次の単語の末尾へ移動
「Ctrl」+「←」 カーソルを単語の先頭へ移動、すでに単語の先頭の場合は、前の単語の先頭へ移動
キー 機能
「Backspace」 カーソルの1つ左の文字を削除
「Delete」 カーソルのある場所の文字を削除
「Ctrl」+「Backspace」 カーソルの1つ左の文字から単語頭までを削除
「Ctrl」+「Delete」 カーソルから単語末までを削除
「Ctrl」+「Home」 カーソルの1つ左の文字から行頭までを削除
「Ctrl」+「End」 カーソルから行末までを削除

上記操作に操作に必要な設定

"\C-h": backward-kill-word  # Ctrl-Backspace
"\e[1;5H": unix-line-discard    # Ctrl-Home
"\e[1;5F": kill-line        # Ctrl-End
キー 機能
「Backspace」 カーソルの1つ左の文字を削除
「Delete」 カーソルのある場所の文字を削除
「ESC」+「Backspace」 カーソルの1つ左の文字から単語頭までを削除
「ESC」+「Delete」 カーソルから単語末までを削除
「Ctrl」+「u」 カーソルの1つ左の文字から行頭までを削除
「Ctrl」+「k」 カーソルから行末までを削除

上記操作に操作に必要な設定

"\e\e[3~": kill-word        # ESC Delete

付録 Windows Terminal キーとキー表記

キー キー表記
「ESC」 \e
「ESC」「ESC」 \e\e
「Home」 \e[H
「Insert」 \e[2~
「Delete」 \e[3~
「End」 \e[F
「Page Up」 \e[5~
「Page Down」 \e[6~
「F1」 \eOP
「F2」 \eOQ
「F3」 \eOR
「F4」 \eOS
「F5」 \eO15~
「F6」 \eO17~
「F7」 \eO18~
「F8」 \eO19~
「F9」 \eO20~
「F10」 \eO21~
「Alt」+「Home」 \e[1;3H
「Alt」+「Insert」 \e[2;3~
「Alt」+「Delete」 \e[3;3~
「Alt」+「End」 \e[1;3F
「Alt」+「Page Up」 \e[5;3~
「Alt」+「Page Down」 \e[6;3~
「Ctrl」+「Home」 \e[1;5H
「Ctrl」+「Insert」 \e[2;5~
「Ctrl」+「Delete」 \e[3;5~
「Ctrl」+「End」 \e[1;5F
「Ctrl」+「Page Up」 \e[5;5~
「Ctrl」+「Page Down」 \e[6;5~
「↑」 \e[A
「↓」 \e[B
「→」 \e[C
「←」 \e[D
「Alt」+「↑」 \e[1;3A
「Alt」+「↓」 \e[1;3B
「Alt」+「→」 \e[1;3C
「Alt」+「←」 \e[1;3D
「Ctrl」+「↑」 \e[1;5A
「Ctrl」+「↓」 \e[1;5B
「Ctrl」+「→」 \e[1;5C
「Ctrl」+「←」 \e[1;5D
貼り付け開始 \e[200~
クエリステータスレポート \e[5n
クエリステータスレポート(応答) \e[0n
「Backspace」 \C-?
「Ctrl」+「Backspace」 \C-H
「Tab」 \C-I
「Enter」 \C-M

付録 Mac Terminal キーとキー表記

キー キー表記
「ESC」 \e
「ESC」「ESC」 \e\e
「Home」 なし
「Insert」 なし
「Delete」 \e[3~
「End」 なし
「Page Up」 なし
「Page Down」 なし
「F1」 \eOP
「F2」 \eOQ
「F3」 \eOR
「F4」 \eOS
「F5」 \eO15~
「F6」 \eO17~
「F7」 \eO18~
「F8」 \eO19~
「F9」 \eO20~
「F10」 なし
「F11」 \eO23~
「F12」 \eO24~
「Alt」+「Home」 なし
「Alt」+「Insert」 なし
「Alt」+「Delete」 なし
「Alt」+「End」 なし
「Alt」+「Page Up」 なし
「Alt」+「Page Down」 なし
「Ctrl」+「Home」 なし
「Ctrl」+「Insert」 なし
「Ctrl」+「Delete」 \e[3;5~
「Ctrl」+「End」 なし
「Ctrl」+「Page Up」 なし
「Ctrl」+「Page Down」 なし
「↑」 \e[A
「↓」 \e[B
「→」 \e[C
「←」 \e[D
「Alt」+「↑」 なし
「Alt」+「↓」 なし
「Alt」+「→」 なし
「Alt」+「←」 なし
「Ctrl」+「↑」 \e[A
「Ctrl」+「↓」 \e[B
「Ctrl」+「→」 \e[1;5C
「Ctrl」+「←」 \e[1;5D
貼り付け開始 \e[200~
クエリステータスレポート \e[5n
クエリステータスレポート(応答) \e[0n
「Backspace」 \C-H
「Ctrl」+「Backspace」 \C-H
「Tab」 \C-I
「Enter」 \C-M

付録 bash bind -p 出力キー対応表

キー表記 キー readline関数(Ubuntu 20.04デフォルト割当)
\e 「ESC」 set-mark
\C-g 「Ctrl」+「g」 abort
\C-x\C-g 「Ctrl」+「x」「Ctrl」+「g」 abort
\e\C-g 「ESC」「Ctrl」+「g」 abort
\C-j 「Enter」 accept-line
\C-m 「Enter」 accept-line
\C-b 「Ctrl」+「b」 backward-char
\eOD 「←」 backward-char
\e[D 「←」 backward-char
\C-? 「Backspace」 backward-delete-char
\C-h 「Ctrl」+「Backspace」 backward-delete-char
\C-x\C-? 「Ctrl」+「x」「Ctrl」+「Backspace」 backward-kill-line
\e\C-? 「ESC」「Ctrl」+「Backspace」 backward-kill-word
\e\C-h 「ESC」「Backspace」 backward-kill-word
\e[1;3D 「Alt」+「←」 backward-word
\e[1;5D 「Ctrl」+「←」 backward-word
\e[5D 「Ctrl」+「←」 backward-word
\e\e[D 「ESC」「←」 backward-word
\eb 「ESC」「b」 backward-word
\e< 「ESC」「<」 beginning-of-history
\C-a 「Ctrl」+「a」 beginning-of-line
\eOH 「Home」 beginning-of-line
\e[1~ 「Home」 beginning-of-line
\e[H 「Home」 beginning-of-line
\e[200~ 貼り付け開始 bracketed-paste-begin
\C-xe 「Ctrl」+「x」「e」 call-last-kbd-macro
\C-] 「Ctrl」+「]」 character-search
\e\C-] 「ESC」「Ctrl」+「]」 character-search-backward
\C-l 「Ctrl」+「l」 clear-screen
\C-i 「Tab」 complete
\e\e 「ESC」「ESC」 complete
\e! 「ESC」「!」 complete-command
\e/ 「ESC」「/」 complete-filename
\e@ 「ESC」「@」 complete-hostname
\e{ 「ESC」「{」 complete-into-braces
\e~ 「ESC」「~」 complete-username
\e$ 「ESC」「$」 complete-variable
\C-d 「Ctrl」+「d」 delete-char
\e[3~ 「Delete」 delete-char
\e\ 「ESC」「\」 delete-horizontal-space
\e- 「ESC」「-」 digit-argument
\e0 「ESC」「0」 digit-argument
\e1 「ESC」「1」 digit-argument
\e2 「ESC」「2」 digit-argument
\e3 「ESC」「3」 digit-argument
\e4 「ESC」「4」 digit-argument
\e5 「ESC」「5」 digit-argument
\e6 「ESC」「6」 digit-argument
\e7 「ESC」「7」 digit-argument
\e8 「ESC」「8」 digit-argument
\e9 「ESC」「9」 digit-argument
\C-x\C-v 「Ctrl」+「x」「Ctrl」+「v」 display-shell-version
\C-xA 「Ctrl」+「x」「A」 do-lowercase-version
\C-xB 「Ctrl」+「x」「B」 do-lowercase-version
\C-xC 「Ctrl」+「x」「C」 do-lowercase-version
\C-xD 「Ctrl」+「x」「D」 do-lowercase-version
\C-xE 「Ctrl」+「x」「E」 do-lowercase-version
\C-xF 「Ctrl」+「x」「F」 do-lowercase-version
\C-xG 「Ctrl」+「x」「G」 do-lowercase-version
\C-xH 「Ctrl」+「x」「H」 do-lowercase-version
\C-xI 「Ctrl」+「x」「I」 do-lowercase-version
\C-xJ 「Ctrl」+「x」「J」 do-lowercase-version
\C-xK 「Ctrl」+「x」「K」 do-lowercase-version
\C-xL 「Ctrl」+「x」「L」 do-lowercase-version
\C-xM 「Ctrl」+「x」「M」 do-lowercase-version
\C-xN 「Ctrl」+「x」「N」 do-lowercase-version
\C-xO 「Ctrl」+「x」「O」 do-lowercase-version
\C-xP 「Ctrl」+「x」「P」 do-lowercase-version
\C-xQ 「Ctrl」+「x」「Q」 do-lowercase-version
\C-xR 「Ctrl」+「x」「R」 do-lowercase-version
\C-xS 「Ctrl」+「x」「S」 do-lowercase-version
\C-xT 「Ctrl」+「x」「T」 do-lowercase-version
\C-xU 「Ctrl」+「x」「U」 do-lowercase-version
\C-xV 「Ctrl」+「x」「V」 do-lowercase-version
\C-xW 「Ctrl」+「x」「W」 do-lowercase-version
\C-xX 「Ctrl」+「x」「X」 do-lowercase-version
\C-xY 「Ctrl」+「x」「Y」 do-lowercase-version
\C-xZ 「Ctrl」+「x」「Z」 do-lowercase-version
\eA 「ESC」「A」 do-lowercase-version
\eB 「ESC」「B」 do-lowercase-version
\eC 「ESC」「C」 do-lowercase-version
\eD 「ESC」「D」 do-lowercase-version
\eE 「ESC」「E」 do-lowercase-version
\eF 「ESC」「F」 do-lowercase-version
\eG 「ESC」「G」 do-lowercase-version
\eH 「ESC」「H」 do-lowercase-version
\eI 「ESC」「I」 do-lowercase-version
\eJ 「ESC」「J」 do-lowercase-version
\eK 「ESC」「K」 do-lowercase-version
\eL 「ESC」「L」 do-lowercase-version
\eM 「ESC」「M」 do-lowercase-version
\eN 「ESC」「N」 do-lowercase-version
\eO 「ESC」「O」 do-lowercase-version
\eP 「ESC」「P」 do-lowercase-version
\eQ 「ESC」「Q」 do-lowercase-version
\eR 「ESC」「R」 do-lowercase-version
\eS 「ESC」「S」 do-lowercase-version
\eT 「ESC」「T」 do-lowercase-version
\eU 「ESC」「U」 do-lowercase-version
\eV 「ESC」「V」 do-lowercase-version
\eW 「ESC」「W」 do-lowercase-version
\eX 「ESC」「X」 do-lowercase-version
\eY 「ESC」「Y」 do-lowercase-version
\eZ 「ESC」「Z」 do-lowercase-version
\el 「ESC」「l」 downcase-word
\e\C-i 「ESC」「Tab」 dynamic-complete-history
\C-x\C-e 「Ctrl」+「x」「Ctrl」+「e」 edit-and-execute-command
\C-x) 「Ctrl」+「x」「)」 end-kbd-macro
\e> 「ESC」「>」 end-of-history
\C-e 「Ctrl」+「e」 end-of-line
\eOF 「End」 end-of-line
\e[4~ 「End」 end-of-line
\e[F 「End」 end-of-line
\C-x\C-x 「Ctrl」+「x」「Ctrl」+「x」 exchange-point-and-mark
\C-f 「Ctrl」+「f」 forward-char
\eOC 「→」 forward-char
\e[C 「→」 forward-char
\C-s 「Ctrl」+「s」 forward-search-history
\e[1;3C 「Alt」+「→」 forward-word
\e[1;5C 「Ctrl」+「→」 forward-word
\e[5C 「Ctrl」+「→」 forward-word
\e\e[C 「ESC」「→」 forward-word
\ef 「ESC」「f」 forward-word
\eg 「ESC」「g」 glob-complete-word
\C-x* 「Ctrl」+「x」「*」 glob-expand-word
\C-xg 「Ctrl」+「x」「g」 glob-list-expansions
\e^ 「ESC」「^」 history-expand-line
\e# 「ESC」「#」 insert-comment
\e* 「ESC」「*」 insert-completions
\e. 「ESC」「.」 insert-last-argument
\e_ 「ESC」「_」 insert-last-argument
\C-k 「Ctrl」+「k」 kill-line
\e[3;5~ 「Ctrl」+「Delete」 kill-word
\ed 「ESC」「d」 kill-word
\C-n 「Ctrl」+「n」 next-history
\eOB 「↓」 next-history
\e[B 「↓」 next-history
\en 「ESC」n」 non-incremental-forward-search-history
\ep 「ESC」p」 non-incremental-reverse-search-history
\C-o 「Ctrl」+「o」 operate-and-get-next
\C-x! 「Ctrl」+「x!」 possible-command-completions
\e= 「ESC」「=」 possible-completions
\e? 「ESC」「?」 possible-completions
\C-x/ 「Ctrl」+「x」「/」 possible-filename-completions
\C-x@ 「Ctrl」+「x」「@」 possible-hostname-completions
\C-x~ 「Ctrl」+「x」「~」 possible-username-completions
\C-x$ 「Ctrl」+「x」「$」 possible-variable-completions
\C-p 「Ctrl」+「p」 previous-history
\eOA 「↑」 previous-history
\e[A 「↑」 previous-history
\C-p 「Ctrl」+「q」 quoted-insert
\C-v 「Ctrl」+「v」 quoted-insert
\e[2~ 「Insert」 quoted-insert
\C-x\C-r 「Ctrl」+「x」「Ctrl」+「r」 re-read-init-file
\e[0n クエリステータスレポート(応答) redraw-current-line
\er 「ESC」「r」 redraw-current-line
\e\C-r 「ESC」「Ctrl」+「r」 revert-line
\C-@ 「Ctrl」+「@」 set-mark
\e\C-e 「ESC」「Ctrl」+「e」 shell-expand-line
\C-x( 「Ctrl」+「x」「(」 start-kbd-macro
\e& 「ESC」「&」 tilde-expand
\et 「ESC」「t」 transpose-words
\C-_ 「Ctrl」+「_」 undo
\C-x\C-u 「Ctrl」+「x」「Ctrl」+「u」 undo
\C-u 「Ctrl」+「u」 unix-line-discard
\C-w 「Ctrl」+「w」 unix-word-rubout
\eu 「ESC」「u」 upcase-word
\C-z 「Ctrl」+「z」 vi-editing-mode
\C-y 「Ctrl」+「y」 yank
\e. 「ESC」「.」 yank-last-arg
\e_ 「ESC」「_」 yank-last-arg
\e\C-y 「ESC」「Ctrl」+「y」 yank-nth-arg
\ey 「ESC」「y」 yank-pop