
Обзор проблем повторного присоединения экрана UTF8.
Проблема:
Создание экрана, использующего UTF8, работает отлично до тех пор, пока не будет выполнено повторное присоединение сеанса экрана.
Шаги:
ssh remothost
screen -U -S ttytter
[detach screen]
[exit ssh]
xterm -class 'xterm-ttytter' -geometry 175x20 \
-title 'ttytter' -e ssh -t remotehost "screen -dU -r ttytter"
Подробности
Я действительно большой поклонникттитери уже некоторое время пользуюсь им. Недавно я начал использовать xterm вместо xfce4-terminal/gnome-terminal, так как считаю, что он намного чище. Я пытаюсь использовать UTF8 по личным и профессиональным причинам и все еще пытаюсь исправить несколько ошибок.
Первоначальное вложение (создание) дает мне входные данные UTF8, которые работают так, как и должны. $TERM — этоxterm-256colorsв то время как $LANG — этоru_US.UTF-8. Это также верно, когда я снова подключаю экран, хотя я не могу использовать некоторые символы, такие как backspace, который отображается как^Ч.
Кажется, проблема связана с командой, которую я даю для повторного присоединения экрана. Я пытаюсь выяснить, что может вызывать такую проблему, когда я повторно присоединю свой экран UTF8. Я пробовал-д-ри-дУ -р, оба из которых не решают мою проблему. Я пробовал задать xterm флаг -u8, но это не дало мне никаких изменений в поведении.
xterm -class 'xterm-ttytter' -geometry 175x20 \
-title 'ttytter' -e ssh -t remotehost "screen -dU -r ttytter"
Вышеуказанное вызывает проблемы.
ssh remotehost
screen -dU -r ttytter
Вышеуказанное работает просто отлично.
Настройки
.screenrc
defc1 off
defutf8 on
utf8 on
.Xdefaults
xterm*utf8: 1
.bashrc
export LANG=en_US.UTF-8
Я буду очень признателен за любые рекомендации по решению этой проблемы.
решение1
Решение
Различные «классы» загружают различные файлы конфигурации из/etc/X11/app-default/. Моя проблема заключалась в том, что мой новый класс xterm не имел соответствующего файла конфигурации.
# cd /etc/X11/app-default
# ln -s XTerm-color xterm-ttytter
Вышеприведенное свяжет настройки класса XTerm-color с xterm-ttytter, создав символическую ссылку. Таким образом, любые изменения, внесенные в XTerm-color, будут автоматически применены и к xterm-ttytter.
Спасибо @NeiFreenode/#xtermза объяснение классов программ для X11.
решение2
Файлы приложений по умолчанию для xterm
предназначены для включения XTerm-color
использования другого маршрута. Этот ресурс
*customization: -color
сообщит библиотеке X Toolkit о необходимости загрузить файл ресурсов, заканчивающийся на «-color».
Для установлено несколько файлов app-defaults xterm
. Если посмотреть на мой /etc/X11/app-defaults
, то вот основные из них:
-rw-r--r-- 1 root 2400 Nov 27 2012 KOI8RXTerm
-rw-r--r-- 1 root 3609 Nov 27 2012 UXTerm
-rw-r--r-- 1 root 10112 Nov 27 2012 XTerm
а это те, которые настроены по цвету:
-rw-r--r-- 1 root 6217 Nov 27 2012 KOI8RXTerm-color
-rw-r--r-- 1 root 6209 Nov 27 2012 UXTerm-color
-rw-r--r-- 1 root 6207 Nov 27 2012 XTerm-color
TheXTerm
иXTerm-color
одни требуют небольшого пояснения: класс по умолчанию — XTerm
, а ресурс настройки добавляет «-color». Другие используют другие классы. Вам должен быть интересен класс UXTerm
, так как он устанавливает этот
*VT100.utf8: 1
а также настройка шрифтов, полезных с UTF-8. Скрипт uxterm
запускается xterm
с использованием UXTerm
класса, а также обеспечивает настройку переменных среды локали.
Дальнейшее чтение:
решение3
Я предполагаю, что вы получаете искаженный вывод, и если это так, попробуйте выполнить команду reset
, или, может быть, stty sane
. Это, по крайней мере, устранит симптом.