Границы Tmux отображаются как xq вместо строк? - PullRequest
59 голосов
/ 13 декабря 2011

У меня проблемы с тем, чтобы 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 ]

56 голосов
/ 13 декабря 2011

Существует некоторое несоответствие между вашим эмулятором терминала и terminfo записью базы данных, используемой tmux (той, которая названа переменной среды TERM при запуске / присоединении к tmux server).


В соответствии с 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 указывает на то, что 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@'
53 голосов
/ 17 октября 2014

У меня была такая же проблема с PuTTY и Windows 8 при подключении к tmux, работающему на компьютере Debian Squeeze. Даже при установке кодировки в UTF-8 в PuTTY (в настройках «Окно»> «Перевод»> «Удаленный набор символов») я не получил правильное рисование линий.

Установка Удаленный набор символов на " Использование кодировки шрифта " сделала свое дело.

38 голосов
/ 08 мая 2012

Попробуйте установить для набора символов «UTF-8» и «Использовать кодовые точки рисования линий Юникода» в «Окне» -> «Перевод» в настройках замазки.

12 голосов
/ 05 февраля 2015

У меня была такая же проблема с Putty при запуске tmux на машине Linux 12.04.Даже установка кодировки UTF-8 в PuTTY (в настройках «Окно»> «Перевод»> «Удаленный набор символов») не решила проблему.

Запуск tmux с опцией -u сделал свое дело (tmux -u)

7 голосов
/ 09 января 2017

Я прошел через всю гамму предложений, включая:

  • подтверждение локали и настройки UTF-8 в PuTTY
  • экспорт NCURSES_NO_UT8_ACS = 1
  • , вручную пробуя различные шрифтыи выбор перевода PuTTY

Выше не работал.В диалоговых окнах отображаются qqqq ... и xxxx с различными угловыми символами.

Изменение всех вызовов диалога для включения --ascii-lines было опцией, но это потребовало бы большого количества изменений скрипта.

Лучшей рекомендацией было изменить Удаленный набор символов на Использовать кодировку шрифта.

PuTTY Изменить настройки -> Окно -> Перевод -> Удаленный набор символов -> Использовать кодировку шрифта

Оставить все остальные настройки PuTTY по умолчанию.

3 голосов
/ 13 августа 2015

Я изменил настройку в Putty для терминала на Latin-1, и это, похоже, решило проблему.

1 голос
/ 27 ноября 2018

Если вы используете KiTTY , под Windows -> вкладка Перевод есть флажок, который называется «Разрешить рисование линий ACS в UTF». Это нужно проверить:

enter image description here

1 голос
/ 23 мая 2014

под windows / putty используемый шрифт должен иметь символы для отображения установите перевод "UTF-8" и "Использовать кодовые точки рисования линий Unicode" и шрифт в "courier-new", и большинство этих проблем исчезнет

0 голосов
/ 04 января 2018

Для меня проблема была в том, что я забыл сделать файл locale.conf, когда я установил эту коробку Arch Linux. Ниже в строке исправлена ​​проблема, подставьте свой язык Перезагрузка для меня не требовалась.

echo "LANG=en_US.UTF-8" > /etc/locale.conf 
...