
Wie binde ich die Tasten Tabund ShiftTabauf dem Bildschirm? Mein Problem ist, dass ich nicht weiß, was ich an den Bildschirmbefehl übergeben soll, bind
um diese Tastenanschläge zu kennzeichnen.
Übrigens, ich bin mir bewusstGNU-Bildschirm: Zwischen Regionen wechselnaber die Antwort ist nicht da.
Alle der folgenden Schritte schlagen mit dem Fehler fehl -X: bind: character, ^x, or (octal) \032 expected
:
screen -X bind "\033[Z" focus up
screen -X bind "^[[Z" focus up
screen -X bind "\t" focus up
screen -X bind \033[Z focus up
screen -X bind ^[[Z focus up
screen -X bind \t focus up
Dasselbe passiert, wenn ich drücke, CtrlA:um den Befehl einzugeben.
Antwort1
Im Gegensatz zu bindkey
, wo Sie Zeichenfolgen angeben können, bind
ist dies bei nur durch die Verwendung möglich, bind -k CAP
wobei CAP eine termcap
Schlüsselfunktion ist.
Zum Beispiel,
bind -k ku focus up
arbeitet daran, die Zeichenfolge zu binden, die Upan gesendet wird focus up
. Für Backtab sollte das sein:
bind -k kB focus up
Leider scheint es aus irgendeinem Grund nicht zu funktionieren. Ich bin mir nicht sicher, warum. Meine erste Interpretation war falsch. Es klingt, als hätte es etwas damit zu tun, dass ncurses
das Termcap-Äquivalent von nicht kcbt
richtig gehandhabt wird:
$ infocmp -1 | grep Z
cbt=\E[Z,
kcbt=\E[Z,
$ infocmp -1C | grep Z
:bt=\E[Z:\
(kcbt wird nicht in kB übersetzt).
Wenn ich zu meinem ergänze ~/.screenrc
:
termcapinfo * kr=\E[Z
bind -k kr focus up
Das heißt, wenn ich sage, screen
was auch immer dieGastgeberterminal ( *
), F63( kr
) sendet \E[Z
, und bindet F63an focus up
, dann funktioniert es. Beachten Sie jedoch, dass das Drücken Shift+Tabvon jetzt sendetinnerhalb des Bildschirms \EOC
, das ist die Zeichenfolge, die der Terminalemulator verwendet,Bildschirmimplementiert (im Gegensatz zum Host-Terminal) sendet an F63.
Antwort2
bindkey -k kB stuff ^[OZ
bind -k kB focus up
In meinem Fall besteht das Problem darin, dass die Zeichenfolge, die eingefügt wird, wenn ich Ctrl+ A- Shift+ drücke, nach + Tabsteht , was übersetzt wird in^[[Z
CtrlA
^[
in den Kopier-/Zurück-Modus wechseln[
abbrechen- und dann zeigen
Z
d. h. die Escape-Zeichenfolge im Standardstil von VT100 steht im Konflikt mit der Zeichenfolge im Kopier-/Scrollback-Modus. Daher habe ich eine Tastenkombination für den Backtab-Termcap-Namen hinzugefügt, kB
um die Zeichenfolge, die in den Eingabepuffer eingefügt wird, wenn Shift+ Tabgedrückt wird, in zu ändern ^[OB
.
Weitere Informationen finden Sie im Abschnitt „INPUT TRANSLATION“ auf der Manpage von screen.