Границы Tmux отображаются как x q вместо строк?
У меня проблемы с тем, чтобы tmux отображал линии для границ. Они создаются с помощью x и q. Это сервер сжатия Debian, и языковой стандарт настроен на en_US UTF8. Я также попытался добавить
# instructs tmux to expect UTF-8 sequences
setw -g utf8 on
set -g status-utf8 on
строки в.tmux.conf. Ничто не похоже на работу. Я не уверен, является ли это языковым вопросом или нет. Он отображается правильно на других серверах, но не на Debian. Я ценю любые советы, которые вы могли бы предложить! Спасибо...
9 ответов
Существует некоторое несоответствие между вашим эмулятором терминала и записью базы данных terminfo, используемой tmux (именованной переменной среды TERM при запуске / подключении к серверу tmux).
Согласно Руководству пользователя VT100, Таблица 3-9: Специальные графические символы, когда выбран "специальный графический набор", x
используется для рисования "Вертикальная черта" и q
используется для рисования "Горизонтальная линия - Сканирование 5".
В terminfo специальные графические символы VT100 доступны как часть функциональности альтернативного набора символов; см. раздел "Линейная графика" на странице руководства terminfo(5).
Возможно (на вашем сервере Debian) эффективная запись базы данных terminfo указывает на то, что ACS доступен, но ваш эмулятор терминала фактически не отвечает на указанные последовательности управления.
Файл tmux CHANGES указывает, что некоторые эмуляторы терминала (например, Putty) не учитывают управляющие последовательности ACS, когда они находятся в режиме UTF-8. Таким образом, tmux 1.4 имеет изменение, которое заставляет его всегда использовать символы UTF-8 вместо последовательностей ACS, когда подключающий клиент указывает, что он может обрабатывать UTF-8 (то есть при подключении, -u
был дан или UTF-8
присутствует в LC_ALL, LC_CTYPE или LANG; utf8
Параметр window определяет, что tmux должен ожидать от программ, которые он запускает, а не то, что он может отправить присоединенному клиенту.
Debian "squeeze" включает в себя только tmux 1.3, так что ваш tmux, вероятно, не имеет функции "предпочитать рисование линий UTF-8" (если он не извлекается из источника backports).
Если вы не можете исправить ваш эмулятор терминала или выполнить обновление до версии не ниже tmux 1.4, вы можете использовать tmux terminal-overrides
возможность сброса возможностей, связанных с ACS, чтобы tmux переключился на рисование линий ASCII. В вашем .tmux.conf
(в системе Debian):
set-option -ga terminal-overrides ',*:enacs@:smacs@:rmacs@:acsc@'
У меня была та же проблема с PuTTY и Windows 8 при подключении к tmux, работающему на компьютере Debian Squeeze. Даже при установке кодировки в UTF-8 в PuTTY (в настройках "Окно"> "Перевод"> "Удаленный набор символов") я не получил правильное рисование линий.
Установка удаленного набора символов на "Использовать кодировку шрифта" сделала свое дело для меня.
Попробуйте установить для набора символов "UTF-8" и "Использовать кодовые точки рисования линий Юникода" в "Окне -> Перевод" в настройках шпаклевки.
У меня была такая же проблема с Putty при запуске tmux на машине с Linux 12.04. Даже установка кодировки UTF-8 в PuTTY (в настройках "Окно"> "Перевод"> "Удаленный набор символов") не решила проблему.
Запуск tmux с опцией -u сделал свое дело (tmux -u
)
Если у вас открытые настройки Putty 0.73 или выше, разверните категорию "Окно" и выберите "Перевод". Установите флажок "Включить рисование линий VT100 даже в режиме UTF-8":
Я пробежал по гамме предложений, в том числе:
- подтверждение локали и установка UTF-8 в PuTTY
- экспорт NCURSES_NO_UT8_ACS=1
- вручную пробовать различные шрифты и варианты перевода PuTTY
Выше не сработало. В диалоговых окнах отображаются qqqq... и xxxx с различными угловыми символами.
Изменение всех диалоговых вызовов для включения --ascii-lines было опцией, но это потребовало бы большого количества изменений скрипта.
Лучшая рекомендация состояла в том, чтобы изменить Удаленный набор символов, чтобы Использовать кодировку шрифта.
PuTTY Изменить настройки -> Окно -> Перевод -> Удаленный набор символов -> Использовать кодировку шрифта
Оставил все остальные настройки PuTTY по умолчанию.
Я изменил настройку в Putty для терминала на Latin-1, и это, похоже, решило проблему.
Если вы используете KiTTY, под Windows -> вкладка Перевод есть флажок, который называется "Разрешить рисование линий ACS в UTF". Это нужно проверить:
Для меня проблема была, я забыл сделать locale.conf
файл, когда я настраиваю эту коробку Arch Linux. Ниже в строке исправлена проблема, подставьте свой язык. Перезагрузка для меня не требовалась.
echo "LANG=en_US.UTF-8" > /etc/locale.conf
В windows/ putty используемый шрифт должен иметь символы для отображения набора перевода "UTF-8" и "использовать кодовые точки рисования линий Unicode" и шрифта в "courier-new", и большинство этих проблем исчезают
Кажется, выбор шрифта здесь сбивает с толку, а именно:
- Lucida sans не отображает только рисование линий UTF-8 - + | (труба) замена
- Courier New Bold делает горизонтальные линии, но | замена вертикали
- Courier New Normal делает все.