Я работаю на ПК с Windows. Если я открою терминал (с помощью putty или ssh) для машины linux (CentOS), я не смогу заставить работать такие клавиши, как Esc, Ctrl, Shift и Alt. Они нужны мне для Midnight Commander (в настоящее время Ctrl-Ins и Shift-Ins у меня не работают). Можно ли заставить эти ключи работать?
2 ответа
Putty
эмулирует терминал, который подключен к Unix
машине через последовательное (RS232c
) соединение. Посмотрите здесь для параметров конфигурации. Типичные типы терминалов включают vt100
, vt200
, xterm
, ansi
.
Для правильной работы переменная окружения Unix
TERM
должна соответствовать типу эмулируемого терминала (см. Конфигурация Putty
Connection/Data/Terminal-type
). Я использую xterm
, также для текстовых окон консоли.
Используйте echo $TERM
как команду, чтобы найти текущее значение.
Esc
- это первый символ терминальных контрольных последовательностей. Поэтому, как правило, его не следует использовать как самостоятельный символ. Ctrl, Shift и Alt сами по себе не запускают отправку символов на ваш компьютер Unix
. Вы можете использовать меню конфигурации Putty
Terminal/Keyboard
чтобы повлиять на перевод определенных клавиш.
Хотя PuTTY устанавливает переменную TERM
в значение xterm
, его поведение фактически не соответствует поведению xterm. В этом вопросе упоминаются две особенности:
- Выход из системы в качестве префикса, возвращаемого специальными ключами, предоставляется xterm в качестве альтернативы мета- ключу (см. Обсуждение
eightBitInput
в руководстве). - другие клавиши (Control, Shift и Alt) обычно используются как * модификаторы. То есть они обычно не отправляют символы сами по себе, а изменяют поведение нажатой клавиши одновременно.
Часто задаваемые вопросы по ncurses Как я могу использовать модификаторы shift или control? представляет некоторые фоны для измененных ключей. PuTTY не реализует ничего из этого. Это изменение управляющих последовательностями , посылаемых сдвинутая клавиша управления курсором, переключение между нормальным и режимами работы (см XTERM FAQ Почему я не могу использовать клавиши управления курсором в (любой) оболочках? для некоторого обсуждения этих терминов).
У ncurses есть точное описание терминала для конфигурации PuTTY по умолчанию (можно создать несколько описаний, соответствующих настройкам его диалогового окна клавиатуры, но на практике они редко упоминаются, возможно, редко используются). Системы с полной базой данных терминалов будут иметь описание терминала putty
.
Как и другие эмуляторы терминала, которые устанавливают TERM
на xterm
, полное описание терминала имеет много отличий от xterm
. FAQ по ncurses Почему бы просто не использовать TERM со значением "xterm"? дает обзор этого аспекта.
Упоминание о ssh намекает на то, что вы можете использовать mintty
с Cygwin. Это потомок PuTTY
, с примерно такими же ограничениями.