BEGINNER'S GUIDE TO ZSH KEYBOARD ASSIGNMENTS, AKA 'KEYBOARD BINDINGS'.
(コメント、改善、苦い非難は歓迎:eastlink dot caのrayandrews)
Debian Linuxでxfce4の下で 'zsh'を実行しているPCに接続された '101' PCキーボードの 'Available'キーの組み合わせ(だれが「担当」しているかわかりません)。「グレー」キー内で重複コードを生成するすべての組み合わせは、表示されている最も単純なアバターを除いて削除されています。いくつかの灰色のキー/組み合わせには、「Enter」==「^ M」のように「^ letter」の重複があることに注意してください。これらは削除されていません。他のアクティブな組み合わせは、たとえばコンソールからでもシステムによって使用されるため、「使用可能」ではありませんでした。「Alt + Function」キーでターミナルを切り替えます。おそらく、「メタ」キーはもっと多くのことをしますが、これは101 KBです。興味深いのは、Ctrl + Functionなど、DOSで使用可能な組み合わせがはるかに多いことです。DOSではすべて使用できますが、Linuxでは使用できません。トリプルキーの組み合わせ(例: 'Ctrl + Alt + Up')は、グレーキー内に一意のコードを生成しませんでしたが、ホワイトキーにコードを生成します。興味深い異常: '^ [[22' '^ [[27' '^ [[30'は「欠落」しているのに、なぜこれらの数値がスキップされたのか疑問に思うでしょう。(つまり、「F11」は「^ [[23」ではなく、「^ [[22」であると予想されるかもしれません。)
表示されるキーコードは、CLIで「showkeys -a」または「bindkey」によって出力されるものです。ただし、何らかの理由で( '.zshrc'のように)スクリプト内で 'bindkey'を使用する場合、 '^ ['を '\ e'に置き換える必要があります。したがって、CLIで:
bindkey -s '^ [[[A' 'my-command \ Cm'
... 'F1'を 'my-command'にバインドして実行します( '\ Cm'は 'Enter'キーをシミュレートします)。
「.zshrc」内:
bindkey -s '\ e [25' 'my-command1; 私のcommand2 \ Cm '
...「Shift-F1」を「my-command1」にバインドし、「my-command2」を続けて、両方を実行します。
「グレイ」キーだけを使用した組み合わせ:
key [ F1 ] = '^ [[[A'
key [ F2 ] = '^ [[[B'
key [ F3 ] = '^ [[[C'
key [ F4 ] = '^ [[[D'
key [ F5 ] = '^ [[[E'
キー[ F6 ] = '^ [ [ 17〜'
キー[ F7 ] = '^ [ [ 18〜'
キー[ F8 ] = '^ [ [ 19〜'
キー[ F9 ] = '^ [[20〜'
key [ F10 ] = '^ [[21〜'
key [ F11 ] = '^ [ [ 23〜'
key [ F12 ] = '^ [[ 24〜'
key [ Shift - F1 ] = '^ [[ 25〜'
key [ Shift - F2 ] = '^ [ [ 26〜'
key [ Shift - F3 ] = '^ [ [ 28〜'
key [ Shift - F4 ] = ' ^ [[29〜 '
キー[ Shift - F5 ] = ' ^ [[ 31〜'
キー[ Shift - F6 ] = ' ^ [[32〜 '
キー[ Shift - F7 ] = '^ [[33〜'
キー[ Shift - F8 ] = '^ [[34〜'
key [ Insert ] = '^ [[2〜'
key [ Delete ] = '^ [[3〜'
key [ Home ] = '^ [[1〜'
key [ End ] = '^ [[4〜'
key [ PageUp ] = '^ [[5〜'
キー[ PageDown ] = '^ [[6〜'
キー[ Up ] = '^ [[A'
キー[ Down ] = '^ [[B'
キー[ Right ] = '^[[C'
key[Left] = '^[[D'
key[Bksp] = '^?'
key[Bksp-Alt] = '^[^?'
key[Bksp-Ctrl] = '^H' console only.
key[Esc] = '^['
key[Esc-Alt] = '^[^['
key[Enter] = '^M'
key[Enter-Alt] = '^[^M'
key[Tab] = '^I' or '\t' unique form! can be bound, but does not 'showkey -a'.
key[Tab-Alt] = '^[\t'
COMBINATIONS USING THE WHITE KEYS:
Anomalies:
'Ctrl+`' == 'Ctrl+2', and 'Ctrl+1' == '1' in xterm.
Several 'Ctrl+number' combinations are void at console, but return codes in xterm. OTOH Ctrl+Bksp returns '^H' at console, but is identical to plain 'Bksp' in xterm. There are no doubt more of these little glitches however, in the main:
White key codes are easy to undertand, each of these 'normal' printing keys has six forms:
A = 'a' (duhhh)
A-Shift = 'A' (who would have guessed?)
A-Alt = '^[a'
A-Ctrl = '^A'
A-Alt-Ctrl = '^[^A'
A-Alt-Shift = '^[A'
A-Ctrl-Shift = '^A' (Shift has no effect)
Don't forget that:
/-Shift-Ctrl = Bksp = '^?'
[-Ctrl = Esc = '^['
M-Ctrl = Enter = '^M'
And, we can 'stack' keybindings:
bindkey -s '^Xm' "My mistress\' eyes are nothing like the sun."
... Bind 'Ctrl-X' followed by 'm' to a nice line of poetry.
And we can flirt with madness:
bindkey -s '^Pletmenot' 'Let me not, to the marriage of true minds'
... but you hafta start something like that with a 'modifier' character. Try it, if you like keyboard shortcuts, you can really go to town.
QUESTIONS:
Where is it written that 'Ctrl-Bksp' means one thing at console, another thing in xterm?
Are these assignments changable?
Who designed all this, and what were they thinking at the time?
Why is it 'Alt-Function' to change terminals at a terminal, but 'Alt-Ctrl-Function' to change to a terminal from GUI?
「Alt - Ctrl - Delete 」はどのように/どこで定義されていますか?
enter code here
stty -a
いいlnext
)を押してからキーを押します。