Próbuję użyć htop
w tty1. Jednak niektóre klawisze funkcyjne nie działają normalnie. F1i F2nie rób nic, i F3wydaje się, że wyzwala konfigurację (która normalnie powinna zostać uruchomiona F2). Ponadto F4i F5nie działają. Ponadto, gdy próbuję nacisnąć przycisk, Escaby wyjść z tych ekranów, muszę go nacisnąć dwukrotnie.
W normalnym terminalu ( terminator
) klawisze funkcyjne działają dobrze. Muszę jednak nacisnąć Escdwa razy tutaj, więc może to czerwony śledź.
Jak korzystać z tych klawiszy funkcyjnych w tty1?
EDYTOWAĆ
W tty1, jeśli naciśniesz Ctrl+, va następnie F1na F5itd., Otrzymam następujące dane wyjściowe:
^[[[A
^[[[B
^[[[C
^[[[D
^[[[E
W terminator
otrzymuję
^[OP
^[OQ
^[OR
^[OS
^[[15~
Powyższe klawisze funkcyjne są równoważne (np. ^[[17~
Dla F6).
EDYCJA 2
W odpowiedzi na komentarz Stéphane Chazelas .
$TERM
jest taki sam w tty1 jak w moim „normalnym”, działającym terminalu. Jestxterm-256color
.- Nie używam screena ani tmuxa.
- Korzystam z wersji
htop
1.0.3, chociaż moja pierwsza edycja wydaje się wskazywać, że jest to problem wcześniejszyhtop
.
„Czy
infocmp -L1 | grep key_f
pasuje do tego, co te klucze wysyłają dla ciebie?
Nie jestem pewien, co masz na myśli przez „dopasuj, co te klucze wysyłają dla ciebie”, ale uruchomiłem to polecenie zarówno w moim normalnym terminalu, jak i w tty1, a wynik był identyczny, jak poniżej.
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
następnieF1
i zobacz, co zostanie wstawione. Powtórzyć dlaF2
,F3
,F4
iF5
, a następnie zrobić to samo w terminator. Powiedz nam, co widzisz.$TERM
? Używasz screena lub tmuxa? Jaka wersja htopa? Czyinfocmp -L1 | grep key_f
pasuje do tego, co te klucze wysyłają dla ciebie?Odpowiedzi:
Przez ustawienie:
mówisz
htop
(i każdej innej wizualnej aplikacji terminala, która korzysta z termcap lub bazy danych terminfo), że twój terminal jest 256-kolorowy xterm, a nie wirtualna konsola Linux.htop
wyśle zapytanie do bazy danych terminfo, aby dowiedzieć się, na którą sekwencję znaków jest wysyłany F1, F2... ale dostanie jexterm
.xterm
wysyła inne sekwencje niż wirtualna konsola Linux dla tych kluczy, które można zweryfikować, ręcznie sprawdzając bazę danych terminfo,infocmp
na przykład:Więc
htop
nie rozpozna\E[[A
jako F1, będzie się tego spodziewać\EOP
.Tutaj nie chcesz przypisać wartości
$TERM
w~/.bashrc
.$TERM
powinny być ustawione przez same emulatory terminali (xterm
,terminator
) oraz przezgetty
konsole wirtualne Linux (powinnylinux
tam być ).Jeśli nie jesteś zadowolony z wartości wybieranej przez dany emulator terminala
$TERM
, to właśnie konfigurację tego emulatora terminala powinieneś zaktualizować.źródło
xterm-256color
.$TERM
sięxterm-256color
, ale został skonfigurowany do korzystania zESC[n~
klawiszy funkcyjnych. Zmieniłem klawisze funkcyjne, aby używać ichXTerm R6
w ustawieniach i wszystko działa teraz.