Отримання 256 кольорів для роботи в tmux


177

У мене 256 кольорів, які добре працюють konsole,. Я подумав, tmuxщо спробую, тому що, на відміну від екрану, він, здається, підтримує viрежим. Однак я вважаю, що кольори мого підказки відображаються, і це, швидше за все, тому що у мене є підказка кольорового режиму 256. Що мені потрібно зробити, tmuxщоб розпізнати всі 256 кольорів?


2
tmux -2Мені довелося це робити в термінаторі, і я був дещо здивований. -2Прапор говорить tmux , щоб змусити використання 256 кольорів ... Чи любить ваш термінал чи ні ... Дун Дун dunnn: P
— Ділан

Відповіді:


253

Tmux FAQ явно радить налаштування TERM ні до чого, крім екрану або екрана-256 - кольорові в файлі ініціалізації оболонки, так що не робіть цього!

Ось що я використовую:

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

і в моєму .tmux.conf:

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

Дозвіл tmuxдо " tmux -2" також повинен зробити трюк.


4
Мені подобається спосіб його встановити в .tmux.conf найкраще ... використання оболонки для його встановлення просто не здається правильним
— xenoterracide

6
Дивно. Вам не потрібен tmux -2OSX, але він вам потрібен з терміналом Gnome. Дякую за інформацію, додану до моїх псевдонімів!
— FX

1
У Kubuntu 13.10 лише налаштування .tmux.conf не повернуло мої 256 кольорів (які вивели виділення у візуальному режимі vim), але псевдонім працював. Звичайно, я вважаю за краще рішення .tmux.conf лише для файлу.
— Джейкоб Далтон

1
ssh'd на машині Ubuntu (з ОС X X Terminal), термінал .tmux.conf за замовчуванням був усім, що мені потрібно.
— дуелінові маркери

2
мені здається, що все, що мені потрібно зробити, - це TERM=screen-256color tmuxне створювати .tmux.confфайл. Я щось пропускаю?
— joelostblom

39

Спробуйте встановити 256 кольорів явно у вашому файлі bashrc або zshrc:

export TERM=xterm-256color

або

export TERM=screen-256color

Якщо у вас є проблеми з tmux неправильним очищенням кольорів фону при використанні налаштування терміна на екрані, ви можете спробувати:

export TERM=screen-256color-bce

1
перший - це моє налаштування TERM ... Я просто спробував інші 2, і моє підказка все ще не показує кольори, коли я ввожу tmux. (Я хотів би зазначити, що tmux показує кольори внизу) ... здається, що коли я ввожу tmux, він скидає термін на TERM = екран ... можливо, є спосіб змінити це в налаштуваннях?
— ксенотеррацид

nvm ... Я думаю, що введення його в RC моєї оболонки спрацьовує ... як дратує те, що вона ігнорує змінну TERM env, яка встановлюється при виконанні tmux ... Я думаю, що мені доведеться поставити умовне в моєму rc.
— ксенотеррацид

1
-bce не сумісний з tmux. Tmux не підтримує стирання кольорів тла:
— Дастін Кіркленд

1
У мене була ця проблема з рокстермом. Сподіваємось, додавання roxterm до цього допоможе людям знайти те саме рішення, що і я. Я б закінчився у vim, і якщо вибрати рядки, вони зникнуть. Вкрай важко шукати. roxterm за замовчуванням встановлює лише $ TERM = xterm, що не добре.
— BeepDog

5
-1, у файлі ініціалізації оболонки ви не повинні встановлювати або беззастережно. Якщо його встановити, це також xterm-256colorзмінить його і всередині tmux, а встановлення його screen-256colorпоза tmux може призвести до появи помилок.
— nyuszika7h

19

Відповідно до поширених запитань про 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


2
Налаштування tmux мені було достатньо; Мені не потрібно було встановлювати псевдонім (хоча, мабуть, це не зашкодить).
— anishpatel

Налаштування tmux поодинці працює для мене. Псевдонім був недостатнім.
— Гаррі Морено

12

Найновіша версія ncurses кораблів із записом tmux-256color terminfo ( FAQ часто це згадує). Як приклад, перевагою використання tmux-256color над екраном-256color є те, що курсив належним чином відображений (екран не підтримує курсивом).

Отже, якщо у вас є останній пакет ncurses, також буде працювати наступне:

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

Я зауважу, що це рішення, здається, вимагає tmux 2.6або краще
— zzxyz

3

Тут дуже важлива примітка, якщо ви використовуєте 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.61) мої клавіші працюють краще, 2) порада в Інтернеті насправді працює, 3) мої кольори не божевільні. Велике поліпшення.

(Ось посилання на сторінку сховища, btw): https://launchpad.net/~hnakamur


2

Я не міг пояснити, чому це працює, але це вирішило проблему для мене.

~ / .tmux.conf

set-option -g default-command bash

1
Я спробував це як крайній захід, і на диво це спрацювало!
— v0d1ch

1

Це моє рішення .... Я редагую свій .bashrc файл і додаю це

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

Сподіваємось, це працює у ваших


10
Навіщо турбуватися з if? Ви можете просто встановити змінну.
— joeytwiddle
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.