最近、bashショートカットキーを確認し、tmuxアクティベートキーに適切なキーを見つけようとしています。
ctrl + m
が面白いと思います およびctrl + q
https://en.wikipedia.org/wiki/Bash_(Unix_shell)によると、bashショートカットでは使用されません。
なぜ使用されないのですか? ctrl + m
を感じます とても便利です。
これらの2つの組み合わせは、DIY (define it yourself)
の設計によるものですか。 利用方法?または別の話がありますか?
承認された回答:
Ctrl + Mは、ターミナルのEnterキーと同じ文字(RET)を送信します。プログラムにはそれらを区別する方法がないため、これらのキーを個別に構成することはできません。
Ctrl + QはデフォルトでXONにすでに使用されているため、Bashでは使用できませんが、tmuxはraw入力モードを使用するため、tmuxでは引き続き使用できます。
GUIプログラムはキーボードから読み取り、キーmが修飾子Ctrlで押され、ショートカットとしてCtrl + mを使用しますが、シェルまたは任意の端末プログラムは、0から26までのASCII文字と同じようにCtrl+Keyの組み合わせを受け取ります
[email protected] = 0
Ctrl+A = 1
Ctrl+B = 2
等々。これを試して値を確認できます
cat ctrlkeys <<EOF
^A^B^C^D^E^F
EOF
od -c ctrlkeys
0000000 001 002 003 004 005 006 n
値を入力するには、Ctrl+[a-f]の前にCtrl+vを押して、生の値として解釈されないようにします。
ascii(7)テーブルを見ると、左側に対応する文字@..Zが付いたテーブルの制御コードを確認できます。例
015 13 0D CR 'r' (carriage ret) 115 77 4D M
または
011 9 09 HT 't' (horizontal tab) 111 73 49 I
bashの前に制御コードを解釈する次のレイヤーはsttyです(端末設定を変更して印刷します)
stty -a
intr = ^C; quit = ^; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O;
lnext
の意味については、stty(1)を参照してください。 またはstart
およびstop
。
また、readline(3)も参照してください。bashおよびその他のGNU cliプログラムは、そのライブラリを使用して入力行を制御します。もちろん、bash(1)/ READLINE、bashマニュアルページのreadlineセクションです。
関連:変数の値をbashで引用符で囲むか、囲まないか。
注:XYZ(NUM)は、セクションNUMのマニュアルページXYZを意味するため、man NUM XYZ
の結果です。 。