Мне нужно, $TERM
чтобы мой находился xterm-256color
вне tmux (в «обычном» терминале с zsh), но screen-256color
внутри tmux.
Сначала я попробовал:
- добавить
export TERM='xterm-256color'
в мой~/.zshrc
. - добавить
set -g default-terminal "screen-256color"
в мой~/.tmux.conf
Теперь, когда я открываю терминал (скажем, Xterm), TERM
является xterm-256color
, что является правильным. Но когда я запускаю tmux, TERM
снова xterm-256color
!
Затем я попытался закомментировать строку в моем ~/.zshrc
. Теперь, когда я открываю терминал, TERM
есть xterm
, а когда я запускаю tmux, TERM
есть screen-256color
. Таким образом, кажется, что если я установил TERM
в .zshrc
, tmux сначала устанавливает TERM
в screen-256color
, запускает оболочку (которая является zsh), а zsh читает .zshrc
и сбрасывает TERM
в xterm-256color
.
Итак, как сделать, TERM
чтобы быть xterm-256color
в «обычном» терминале, и screen-256color
в tmux?
TERM
в этих терминалах
gnome-terminal
, вероятно, должно быть gnome-256color
... Так что это те приложения, которые вы должны правильно настроить, а не zsh
. Причина, по которой они используют xterm
это, вероятно, состоит в том, чтобы избежать проблем при подключении к компьютерам, на которых нет более конкретных записей terminfo. Если вы знаете, что используете только компьютеры с исчерпывающей базой данных terminfo, вы можете и должны изменить это в самих приложениях.
xterm
если xterm-256color s не поддерживается, хотя было бы еще лучше добавить эти записи в наш собственная ~ / .terminfo база данных).
.zshrc
. Это не правильный путь.