Я пытаюсь использовать htop
в tty1. Однако некоторые функциональные клавиши работают не так, как обычно. F1и F2ничего не делать, и, F3кажется, запускает настройку (которая обычно запускается F2). К тому же F4и F5не работают. Кроме того, когда я пытаюсь нажать, Escчтобы выйти из этих экранов, я должен нажать его дважды.
В обычном терминале ( terminator
) функциональные клавиши работают нормально. Тем не менее, я должен Escдважды нажать здесь, так что, возможно, это красная сельдь.
Как я могу использовать эти функциональные клавиши в tty1?
РЕДАКТИРОВАТЬ
В tty1, если я нажимаю Ctrl+, vзатем F1и F5т.д., я получаю следующий вывод:
^[[[A
^[[[B
^[[[C
^[[[D
^[[[E
В terminator
, я получаю
^[OP
^[OQ
^[OR
^[OS
^[[15~
Вышеуказанные функциональные клавиши эквивалентны (например, ^[[17~
для F6).
РЕДАКТИРОВАТЬ 2
В ответ на комментарий Стефана Шазеласа .
$TERM
в tty1 такой же, как и в моем "нормальном", работающем терминале. Этоxterm-256color
.- Я не использую экран или tmux.
- Я использую
htop
1.0.3, хотя мое первое редактирование, кажется, указывает на то, что это проблема выше по течениюhtop
.
"Совпадает ли
infocmp -L1 | grep key_f
то, что эти ключи посылают для вас?
Я не уверен, что вы подразумеваете под «соответствовать тому, что эти ключи посылают для вас», но я выполнил эту команду как в моем обычном терминале, так и в tty1, и вывод был идентичным, как показано ниже.
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
затемF1
и посмотрите, что вставлено. Повторите эти действия дляF2
,F3
,F4
иF5
, а затем сделать то же самое в терминатора. Расскажите нам, что вы видите.$TERM
там? Вы используете экран или tmux? Какая версия htop? Соответствует лиinfocmp -L1 | grep key_f
то, что эти ключи посылают для вас?Ответы:
Установив:
вы говорите
htop
(и любому другому приложению визуального терминала, которое использует базу данных termcap или terminfo), что ваш терминал представляет собой 256-цветовую xterm, а не виртуальную консоль Linux.htop
запросит базу данных terminfo, чтобы узнать, какая последовательность символов отправлена F1, F2но получит ихxterm
.xterm
отправляет последовательности, отличные от виртуальной консоли Linux, для тех ключей, которые вы можете проверить, запросив базу данных terminfo вручную,infocmp
например:Так
htop
что не признают,\E[[A
а F1будут ожидать\EOP
этого.Здесь вы не хотите назначать значения
$TERM
в~/.bashrc
.$TERM
должны быть установлены самими эмуляторами терминала (xterm
,terminator
) иgetty
виртуальными консолями для Linux (должны бытьlinux
там).Если вы недовольны значением, которое выбирает конкретный эмулятор
$TERM
терминала, вам необходимо обновить эту конфигурацию эмулятора терминала.источник
xterm-256color
.$TERM
наxterm-256color
, но был настроен на использованиеESC[n~
функциональных клавиш. Я изменил функциональные клавиши для использованияXTerm R6
в настройках, и теперь все работает.