Выполнение обратной задачи последовательно выполняется для нескольких Unices с xterm

Я работаю в компании, которая использует три разных Unix (Linux, Solaris и AIX) с одинаковыми домашними каталогами и т. Д. Все они используют GNU coreutils (к счастью!), Но он по-прежнему «интересен», пытаясь обойти различные проблемы. Мы подключаемся к ним, запустив X-сервер (Exceed On Demand) на наших (Windows) настольных компьютерах и используя xterm или ssh ing с другого компьютера из существующего окна xterm (есть и другие методы, но в настоящее время я их не использую Я оставлю их сейчас).

В частности, у меня были проблемы с Solaris с ключевым словом backspace. Он работал бы в bash, но просто печатал ^ H в некоторых других приложениях (особенно на основе readline).

В настоящее время я использую решение иметь stty erase ^H в моем ~/.profile и следующее в моих ~/.Xdefaults :

 *VT100.Translations: #override \ <Key>BackSpace: string(0x08)\n 

Это, похоже, работает большую часть времени, но, возможно, нежелательно, поскольку я явно устанавливаю ключ backspace на то, что не может быть по умолчанию / предпочтительным на каждой платформе. В частности, я часто получаю сообщения при использовании reset напоминающего мне, что я установил стирание на ^ H, и очень часто из-за ряда обстоятельств, которые я еще не смог понять, все снова ломается; возможно, все будет работать в приложениях на основе readline, но не в bash; и мне придется вводить reset чтобы все было в порядке.

Эти вопросы заставляют меня думать, что это может быть не самый предпочтительный способ сделать это. У кого-нибудь есть улучшение в этой ситуации?

Некоторые приложения жестко запрограммированы, чтобы ожидать определенного стирающего персонажа, и с ними мало что можно сделать.

Но обращаясь к комментарию

Я больше задаюсь вопросом, должен ли я делать что-то еще, чтобы попытаться получить backspace, посланный моим xterm, чтобы соответствовать ожидаемому от TTY-устройства по умолчанию backspace.

вы можете установить ресурс ptyInitialErase :

Если «true», xterm будет использовать значение псевдотерминала для значения stty erase. Если «false», xterm установит значение stty erase в соответствии со своей собственной конфигурацией, используя строку kb из записи termcap в качестве ссылки, если она доступна. В любом случае результат применяется к переменной TERMCAP которую устанавливает xterm.

См. Также ресурс ttyModes , который может переопределить это. По умолчанию используется значение «False».

Но для того, чтобы заставить xterm действовать последовательно, ttyModes работает. Имейте в виду, что изменение stty только сообщает системе, чего ожидать. Вы можете изменить поведение клавиши backarrow ( backspace ) с помощью ресурса ackarrowKey :

Указывает, передает ли ключ заднего зайца символ обратного пространства (8) или удаления (127). Это соответствует контрольной последовательности DECBKM . Значение «true» указывает на backspace. По умолчанию используется значение «Истина». Нажатие клавиши управления переключает это поведение.