it-swarm-ru.tech

Получение 256 цветов для работы в tmux

У меня 256 цветов работает нормально в konsole,. Я решил попробовать tmux, потому что, в отличие от экрана, он поддерживает режим vi. Однако я обнаружил, что цвета моей подсказки отображаются, и это, скорее всего, потому что у меня есть подсказка в 256-цветном режиме. Что мне нужно сделать, чтобы tmux распознал все 256 цветов?

186
xenoterracide

Tmux FAQ явно не советует устанавливать TERM что-либо кроме screen или screen-256color в вашем файле инициализации Shell, так что не делайте этого!

Вот что я использую:

~$ which tmux
tmux: aliased to TERM=xterm-256color tmux

и в моем .tmux.conf:

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

Псевдоним tmux к "tmux -2 "также должен сделать свое дело.

271
cannedprimates

Попробуйте явно установить 256 цветов в вашем bashrc или zshrc:

export TERM=xterm-256color

или

export TERM=screen-256color

Если у вас есть проблемы с тем, что tmux неправильно очищает цвета фона при использовании настройки термина экрана, вы можете попробовать:

export TERM=screen-256color-bce
42
redacted

Согласно FAQ по tmux , добавьте это к своему ~/.tmux.conf:

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

Затем добавьте этот псевдоним для tmux:

alias tmux='tmux -2'

Нет необходимости переопределять переменную TERM в вашем профиле или при запуске tmux.

Дополнительная информация: http://vim.wikia.com/wiki/256_colors_setup_for_console_Vim

20
user1338062

Новейшая версия ncurses поставляется с tmux-256color записью terminfo ( FAQ = упоминает об этом). Например, преимущество использования tmux-256color перед screen-256color курсив правильно отображается (экран не поддерживает курсив).

Так что, если у вас последняя версия ncurses, будет работать и следующее:

set -g default-terminal "tmux-256color"
13
Gabriel Parent

Для людей, которые имеют последнюю версию Tmux, .tmux.conf вариант из принятого ответа должен работать.

Я только хочу добавить, что вам, вероятно, потребуется перезапустить tmux, чтобы новая конфигурация вступила в силу:

tmux kill-server && tmux

Интересно, что это нигде не упоминается в ответах, и мне понадобилось время, чтобы разобраться.

4
mast3r

Это действительно важное замечание, если вы используете Ubuntu старше Bionic (18.04). Если вы работаете tmux 2.1 или старше, и вы, вероятно, в принципе, ни один совет, который вы читаете в Интернете о tmux, не сработает .. ни для чего.

tmux -V это простой тест для этого. Если ты видишь 2.1 или старше, вы можете собрать tmux из исходного кода или добавить неофициальный репозиторий. Я обновил свой tmux с помощью:

Sudo add-apt-repository ppa:/hnakamur/tmux
Sudo apt update
Sudo apt upgrade

Лично после обновления до 2.6, 1) мои ключи работают лучше, 2) онлайн-советы действительно работают, 3) мои цвета не безумны. Большое улучшение.

(Вот ссылка на страницу хранилища, кстати): https://launchpad.net/~hnakamur

3
zzxyz

Я не мог объяснить, почему это работает, но это решило проблему для меня.

~/.tmux.conf

set-option -g default-command bash
2
John Snow

Это мое решение .... Я редактирую свой файл .bashrc и добавляю это

if [ "$TERM" != "xterm-256color" ]; then
      export TERM=xterm-256color
    fi

Надеюсь, это работает в вашем

1
Wira Bhakti

Я благодарен за все остальные ответы здесь, дающие мне подсказки, но тогда нет необходимости изменять глобальную настройку TERM AND ~/.tmux.conf.

Я использовал псевдоним для установки TERM, только когда собираюсь использовать tmux. Просто добавьте этот однострочный в конце вашего ~/.bashrc (или любой другой файл конфигурации Shell, который вы используете).

alias tmux='TERM=xterm-256color tmux'

Вот и все. Интересно, что после запуска tmux TERM автоматически сбрасывается на "screen", но цвета все равно работают. Так что я думаю, что tmux также был бы счастлив (за то, что не испортил свою среду TERM?).

0
RayLuo

Следующие строки в ~/.tmux.conf работал для меня -

set -g default-terminal "xterm-256color"
set-option -ga terminal-overrides ",xterm-256color:Tc"

Проверено на

  • Tmux 2.7, Ubuntu 16.04, 18.04
  • Tmux 2.9, CentOS
0
user3496912