Основная проблема заключается в том, что отображение, выполненное screen
между фактическим терминалом (идентифицированным TERM
переменной окружения снаружи screen
) и эмуляцией внутри, screen
является неполным.
Если вам случится проверить его (используя vttest или tack ), вы можете заметить недостатки для
- цвета
- специальные клавиши
Попытка решить эти проблемы путем установки term
в .screenrc
имеет недостаток , заключающийся в том , что он работает только для данного фактического терминала, и не подходит для других терминалов реализации. В документации примечания
Использование термина команда не рекомендуется для целей не по умолчанию.
Существует другое решение (с другим недостатком), использующее эту функцию из screen
документации :
Когда screen пытается определить имя терминала для себя, он сначала ищет запись с именем screen. термин , где термин является содержанием вашей $TERM
переменной. Если такой записи не существует, экран пытается screen
(или screen-w
, если терминал широкий (132 столбца или более)). Если даже эта запись не может быть найдена, vt100
используется в качестве замены.
ncurses предоставляет несколько полезных альтернативных описаний терминалов для этого случая, например, screen.xterm-new , для устранения проблем в отображении экрана. На практике я использую TERM=xterm-new
, а при запуске экрана получаю удобное отображение функциональных клавиш.
Возвращаясь к term
настройкам экрана , при тестировании вы можете заметить, что с отображением все еще остаются проблемы, которые решаются в этих альтернативах. Если бы можно было получить точное описание терминала, используя term
эти альтернативы, были бы простые псевдонимы screen
. Они не.
ncurses не предоставляет screen.xterm
(sic), потому что:
TERM=xterm
широко используется для эмуляторов терминала, которые отличаются от xterm; добавление этого отображения только усугубит эту ситуацию (см., например, почему бы просто не использовать TERM со значением "xterm"? в FAQ по ncurses)
- альтернативное имя с
screen.xterm
меньшей вероятностью будет установлено в удаленных системах (см. комментарий об изменении с июня 2015 г. в базе данных терминала).
В целом, однако, использование альтернативных имен лучше, чем использование term
в вашем .screenrc
: оно решает больше проблем, чем создает. Обратное верно для term
настройки.
term xterm
в мой~/.screenrc
файл исправило это для меня. Еще раз спасибо!