Мне нужно, $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. Это не правильный путь.