Ich versuche htop
in tty1 zu verwenden. Einige der Funktionstasten scheinen jedoch nicht normal zu funktionieren. F1und F2nichts tun und F3scheint das Setup auszulösen (das normalerweise von ausgelöst werden sollte F2). Außerdem F4und F5nicht arbeiten. Wenn ich versuche Esc, diese Bildschirme zu verlassen, muss ich sie zweimal drücken.
In einem normalen Terminal ( terminator
) funktionieren die Funktionstasten einwandfrei. Allerdings muss ich auch Eschier zweimal drücken , also ist das vielleicht ein roter Hering.
Wie kann ich diese Funktionstasten in tty1 verwenden?
BEARBEITEN
Wenn ich in tty1 Ctrl+ vdann F1auf F5usw. drücke, erhalte ich die folgende Ausgabe:
^[[[A
^[[[B
^[[[C
^[[[D
^[[[E
In terminator
bekomme ich
^[OP
^[OQ
^[OR
^[OS
^[[15~
Die darüber liegenden Funktionstasten sind äquivalent (zB ^[[17~
für F6).
BEARBEITEN 2
Als Antwort auf Stéphane Chazelas ' Kommentar .
$TERM
ist in tty1 dasselbe wie in meinem "normalen" Arbeitsterminal. Es istxterm-256color
.- Ich benutze weder Bildschirm noch tmux.
- Ich verwende
htop
1.0.3, obwohl meine erste Bearbeitung darauf hinzudeuten scheint, dass es sich um ein Problem handelt, das vor mir liegthtop
.
"Entspricht das
infocmp -L1 | grep key_f
, was diese Schlüssel für Sie senden?
Ich bin nicht sicher, was Sie unter "Übereinstimmung mit dem, was diese Schlüssel für Sie senden" verstehen, aber ich habe diesen Befehl sowohl in meinem normalen Terminal als auch in tty1 ausgeführt, und die Ausgabe war wie unten identisch.
key_f1=\EOP,
key_f10=\E[21~,
key_f11=\E[23~,
key_f12=\E[24~,
key_f13=\E[1;2P,
key_f14=\E[1;2Q,
key_f15=\E[1;2R,
key_f16=\E[1;2S,
key_f17=\E[15;2~,
key_f18=\E[17;2~,
key_f19=\E[18;2~,
key_f2=\EOQ,
key_f20=\E[19;2~,
key_f21=\E[20;2~,
key_f22=\E[21;2~,
key_f23=\E[23;2~,
key_f24=\E[24;2~,
key_f25=\E[1;5P,
key_f26=\E[1;5Q,
key_f27=\E[1;5R,
key_f28=\E[1;5S,
key_f29=\E[15;5~,
key_f3=\EOR,
key_f30=\E[17;5~,
key_f31=\E[18;5~,
key_f32=\E[19;5~,
key_f33=\E[20;5~,
key_f34=\E[21;5~,
key_f35=\E[23;5~,
key_f36=\E[24;5~,
key_f37=\E[1;6P,
key_f38=\E[1;6Q,
key_f39=\E[1;6R,
key_f4=\EOS,
key_f40=\E[1;6S,
key_f41=\E[15;6~,
key_f42=\E[17;6~,
key_f43=\E[18;6~,
key_f44=\E[19;6~,
key_f45=\E[20;6~,
key_f46=\E[21;6~,
key_f47=\E[23;6~,
key_f48=\E[24;6~,
key_f49=\E[1;3P,
key_f5=\E[15~,
key_f50=\E[1;3Q,
key_f51=\E[1;3R,
key_f52=\E[1;3S,
key_f53=\E[15;3~,
key_f54=\E[17;3~,
key_f55=\E[18;3~,
key_f56=\E[19;3~,
key_f57=\E[20;3~,
key_f58=\E[21;3~,
key_f59=\E[23;3~,
key_f6=\E[17~,
key_f60=\E[24;3~,
key_f61=\E[1;4P,
key_f62=\E[1;4Q,
key_f63=\E[1;4R,
key_f7=\E[18~,
key_f8=\E[19~,
key_f9=\E[20~,
Ctrl+V
dannF1
und sehen Sie, was eingefügt wird. Wiederholen Sie dies fürF2
,F3
,F4
undF5
, und dann das gleiche tun in Terminator. Sagen Sie uns, was Sie sehen.$TERM
darin? Verwenden Sie Bildschirm oder tmux? Welche Version von htop? Entspricht dasinfocmp -L1 | grep key_f
, was diese Schlüssel für Sie senden?Antworten:
Indem man es einstellt:
Sie sagen
htop
(und jeder anderen visuellen Terminalanwendung, die die termcap- oder terminfo-Datenbank verwendet), dass Ihr Terminal ein xterm mit 256 Farben und keine virtuelle Linux-Konsole ist.htop
fragt die terminfo-Datenbank ab, um zu wissen, auf welche Zeichenfolge gesendet wird F1, F2... aber erhält diese fürxterm
.xterm
Sendet andere Sequenzen als die virtuelle Linux-Konsole für die Schlüssel, die Sie überprüfen können, indem Sie die terminfo-Datenbank beispielsweise von Hand abfrageninfocmp
:So
htop
wird nicht erkennen ,\E[[A
wie ein F1, wird es erwarten\EOP
dafür.Hier wollen Sie nicht Werte zuweisen
$TERM
in~/.bashrc
.$TERM
sollte von den Terminalemulatoren (xterm
,terminator
) selbst und vongetty
für Linux virtuellen Konsolen (sollte vorhanden seinlinux
) festgelegt werden.Wenn Sie mit dem Wert, den ein bestimmter Terminalemulator auswählt
$TERM
, nicht zufrieden sind , sollten Sie diese Konfiguration der Terminalemulatoren aktualisieren.quelle
xterm-256color
.$TERM
auf eingestelltxterm-256color
, aber für die Verwendung vonESC[n~
Funktionstasten eingerichtet. Ich habe die Funktionstasten geändert, dieXTerm R6
in den Einstellungen verwendet werden sollen, und jetzt funktioniert alles.