У меня проблема с включением ctrl-h
ярлыка (для tmux и vim) из putty на удаленные хосты linux. Если быть точным, я думаю, ctrl-h
что действительно отправлено. Для подтверждения, когда я набираю ctrl-v
, ctrl-h
я получаю ^H
. (Backspace работает как ^?, так как я уже делаю stty erase ^?
.)
Однако в терминале ctrl-h
это по-прежнему интерпретируется как нажатие клавиши backspace.
Кто-нибудь знает об этой проблеме и способах ее устранения, чтобы избавиться ctrl-h
от Backspace?
Спасибо.
решение1
Терминальная программа, которую вы используете, определяет код, отправляемый для возврата, обычно ^H или ^? (DEL). Его значение задается в настройках или предпочтениях, обычно на вкладке или раскрывающемся списке с упоминанием клавиатуры, но каждая терминальная программа имеет свой собственный способ его определения.
tmux имеет значение конфигурации, backspace key
, где key
может быть ^?
. Обратите внимание, что tmux запускается в вашей терминальной программе.
Когда вы подключаетесь к машине по ssh, переменная окружения TERM устанавливается с тем, что машина считает вашим терминалом, который определяет, какие возможности или коды клавиш использовать для выполнения таких действий, как перемещение вправо или влево или вверх или вниз. Backspace — одна из них, и чтобы увидеть ее значение, введите tput kbs | cat -v
. Это все еще может отличаться от вашей настройки tmux.
Смешивать эти настройки — плохая идея, а ^H — это backspace в определении ascii. Принудительное изменение настроек обычно не требуется и может вызвать проблемы у кого-то другого, кто не использует ваши настройки для ssh на той же машине.