2016-11-07 4 views
1

Я пытаюсь получить tmux для использования screen-256color вместо xterm-256color, так как это не рекомендуется. Но когда я не использую tmux, я хотел бы сохранить его как xterm-256colortmux не использует screen-256color, даже если он установлен в файле конфигурации

Немного моей настройки, я в настоящее время использую iTerm2 и ssh для своего окна разработки linux, использующего zsh.

В моем ~/.zshrc, у меня есть:

export TERM="xterm-256color" 

В моем ~/.tmux.conf, у меня есть:

set -g default-terminal "screen-256color" 

С этим configuraiton без tmux, эхо $ TERM возвращает xterm-256color (это правильно) и с tmux, echo $ TERM по-прежнему возвращает xterm-256color вместо screen-256color.

Есть ли что-нибудь еще, что мне нужно для установки, чтобы это работало?

Спасибо!

+0

xterm-256color (typo ошибка?) – xaa

ответ

0

Вы можете изменить файл .zshrc, чтобы проверить, если вы работаете в tmux:

[ -z "$TMUX" ] && export TERM=xterm-256color 
1

Причина этого не работает, как ожидалось в том, что сеанс zsh который запускается внутри tmux перезаписывает TERM.

Вы не должны устанавливать TERM изнутри в своей оболочке. TERM - это то, как терминал информирует оболочку и другие приложения о ее возможностях (количество цветов, последовательности клавиш для специальных клавиш и т. Д.). Если вы измените TERM внутри оболочки, вы измените те функции, которые оболочка и приложения ожидают от терминала, и сам терминал не знает об этом. Часто это может быть не актуальной проблемой, но лучше изменить конфигурацию терминала и установить там нужное значение.

Вы уже сделали это при настройке screen-256color в конфигурации tmux, которая также является эмулятором терминала. Для того, чтобы сделать это для iTerm2 (протестировано с версией 3.0.10):

  1. * перо Preferences диалогового (в меню: iTerm2Preferences или нажмите + ,) ,
  2. В диалоговом окне перейти к ПрофилиТерминал.
  3. Там вы можете выбрать желаемое значение для TERM под Report Terminal Type.