端末技術:より良いタイピングのための特別なキーコード。リストが見つかりません

端末技術:より良いタイピングのための特別なキーコード。リストが見つかりません

特にコマンドを入力するときに端末技術を向上させ、効率を高めたいと思います。たとえば、コマンドを入力するときにバックスペースを5回押すのではなく、カーソルの左側にある単語を削除したいとします。

私はこれがどのように機能するかをすでに知っています。端末アプリケーションは、たとえばキーボードショートカットをキャプチャし、Ctrl-backspace特殊なキーコードをシェルに送信できます。シェルにはこのタイプの編集のための機能が組み込まれており、キーコードを認識して必要な操作を実行できます。私は正しく説明しましたか?

キーコード設定のショートカット

機能し、機能も素晴らしいですが、可能な項目のリストはどこで見つけることができますか?まさに今日、私はこれが0x1f「取り消し」を意味することに気づきました。私はこれが可能であることを全く知らなかったし、それが好きです!他に何ができるか見たいのですが、何を探すべきかわかりません! 1時間半くらい試してからあきらめました。

私はデフォルトのZsh 5.8シェルであるMacosとiTerm2アプリケーションを使用しています。

答え1

これらのキーボードショートカットはシェルマニュアルに文書化されています。シェルがzshなので、この章をお読みください。「Zshラインエディタ」マニュアルでローカルで利用可能ですman zshzle

ControlキーとESCキーバインディングとキーボードキーの対応関係については、以下を参照してください。キーバインディングテーブル?そしてキーボード入力とテキスト出力はどのように機能しますか?いくつかの背景。具体的には、Ctrl+を押しVてからキーを押すと、送信されるエスケープシーケンスが表示されます。 Mac端末でデフォルトでOptionキーを押すとESCが送信され、その後にキーを押すと転送される内容(通常)が送信されます。

答え2

答えを見つけました。私が説明した機能はコマンドによって制御されますbindkey。オプションなしでバインディングキーを実行すると、現在のバインディングが印刷されます。例は次のとおりです。

"^@" set-mark-command
"^A" beginning-of-line
"^B" backward-char
"^D" delete-char-or-list
"^E" end-of-line
"^F" forward-char
"^G" send-break
"^H" backward-delete-char
"^I" expand-or-complete
"^J" accept-line
"^K" kill-line
...

これが「キーバインディング」と呼ばれるかどうかわからなかったので、Googleで答えが見つかりませんでした。

可能性のリストがあるので、iTerm2を使用している人に実際に役に立つ答えを作成するためにこれを16進数に変換するだけです。

関連情報