Ключ с надписью "Backspace" является предметом спора. Технически, он должен послать ^H
просто потому, что это имя управляющего символа ASCII. Другие отличаются, потому что история этих функций повлияла на их ожидания (см. Почему мой ключ удаления не работает?).
В дискуссии, где вы говорите, что печатаете, обычное значение (без пояснений) состоит в том, что вы запустили терминал, а затем запустили программу в терминале. Для этого случая имеется соответствующая инициализация терминала, например, с использованием оболочки и программы, такой как stty
. Это выполняется на локальной машине (где вы печатаете). MobaXterm предоставляет stty
начиная с версии 3.2 (2011-05-30).
Учитывая, что, если MobaXterm отправляет ^H
, ваша инициализация терминала должна использовать
stty erase \^H
Посмотрите, например, что делает команда stty erase ^H
? ,
С другой стороны, вы могли бы (не очевидно в этом вопросе) создать ситуацию, когда терминал запускается таким образом, что исключает использование stty
для согласованности приложения и терминала. Или у вас может быть какая-то другая причина для изменения поведения клавиши возврата. PuTTY (как и xterm) предоставляет два механизма для этого:
- один (изначально реализованный в rxvt) позволяет использовать модификатор shift для переключения кода, отправляемого из "backspace" между ASCII backspace (BS = 8 =
^H
) и delete (DEL = 127, часто отображается как ^?
).
- другая конфигурация терминала (настройка диалога в разделе « Клавиатура» раздела « Терминал »).
xterm предоставляет третий механизм, которого, по-видимому, нет в PuTTY (см. Последовательности управления XTerm):
CSI ? Pm h
DEC Private Mode Set (DECSET).
Ps = 6 7 -> Backarrow key sends backspace (DECBKM).
Если PuTTY реализует это, ваше приложение может напрямую настроить поведение терминала. Скорее, во время инициализации PuTTY проверяет начальное состояние своей конфигурации и (в зависимости от платформы) также проверяет (например, xterm) режимы терминала, установленные в устройстве, и выбирает режим возврата или удаления, который можно приспособить или изменить, как отмечено.