Скандинавские символы в tmux

# .tmux.conf
set -g status-utf8 on
setw -g utf8 on

Тем не менее, когда я ввожу скандинавские символы æ, ø и å в окне терминала, я получаю следующий вывод:

<00c3><00a6><00c3><00b8><00c3><00a5>

Я использую Iterm2 в качестве своего терминала, и символы печатаются правильно вне tmux.


person nicohvi    schedule 06.10.2014    source источник


Ответы (1)


Вы используете zsh? Мне удалось заставить его выдавать такой результат (внутри и снаружи tmux), установив для LC_CTYPE значение en_US.US-ASCII при фактической отправке UTF-8 (т.е. ложь zsh (и другие чувствительные к локали программы) о том, какой набор символов ожидать).

Убедитесь, что LC_ALL, LC_CTYPE и/или LANG имеют соответствующие значения в вашем сеансе tmux; вы, вероятно, захотите использовать постоянное значение, оканчивающееся на .UTF-8. Вы можете использовать locale для просмотра активных значений и locale -a для списка доступных значений.

Вам также может потребоваться сбросить ошибочные переменные в вашей глобальной среде tmux и/или средах сеансов (чтобы новые сеансы/окна/панели не продолжали получать неверные значения). Вы можете проверить глобальную среду tmux с помощью

tmux show-environment -g | grep -E 'LC|LANG'

Отрегулируйте его значения с помощью (например) tmux set-environment -g LANG "$your_value".

Каждый сеанс также может переопределять переменные среды (для новых окон и панелей, созданных в этом сеансе). Вы можете проверить среду сеанса с помощью

tmux show-environment -t "$session_name" | grep -E 'LC|LANG'

Вы можете отменить значения среды сеанса с помощью (например) tmux set-environment -t "$session_name" -u LANG (чтобы глобальное значение использовалось для новых окон/панелей) или настроить значения сеанса с помощью tmux set-environment -t "$session_name" LANG "$your_value".

Или, если у вас нет важных сеансов, вы можете просто перезапустить сервер tmux с набором известных значений переменных среды локали.

person Chris Johnsen    schedule 07.10.2014