Отримання 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.