tmux, Vim і Solarized


19

Приміщення

Переглядаючи tmux , Vim та Solarized, я можу знайти багато скарг на 256 кольорів та "досвід користувача". Ну, у мене є протилежна "проблема", тобто Vim добре працює з повною соляризованою темою лише в tmux .

Фон

Я вже трохи налаштовуюсь і налаштовуюсь за допомогою кольорової гами мого терміналу Ubuntu та Guake , і я майже дойшов до досконалості, до якої досягається, коли я використовую tmux , що в свою чергу означає завжди. Зараз я намагаюся зрозуміти, чому це відбувається.

Тут внизу є два термінали, на одному зліва працює лише Vim (показує поточний .vimrc), тоді як інший працює Vim всередині сеансу tmux . Як ви добре бачите, лише у сесії tmux шрифти є жирними, що я думаю, що це правильно (чи ні?).

введіть тут опис зображення

Питання

Чому tmux допускає жирний шрифт, тоді як термінал, де працює tmux , не робить? Це помилка чи функція?


Який вихід входить echo $TERMі виходить tmux?
jasonwryan

tmux каже, screenтоді як термінал каже xterm:)
Atcold

@jasonwryan прочитав інше питання , що ОП в тут і відповідь Жиль, щоб на аналогічний тут . Мабуть, $TERMце не так актуально.
тердон

@terdon в цьому випадку це істотно: tmux вимагає, щоб термін був встановлений на екран (або варіант), а xterm за замовчуванням - 8 кольоровий термін. Тому ОП бачить різницю.
Jasonwryan

Поставте xterm*termName: xterm-256colorсвоє ~/.Xresourcesі подивіться, чи це має значення ...
Jasonwryan

Відповіді:


22

Коротка відповідь

Це помилка.

Повна відповідь

Схоже , що «правильна» візуалізація є один зліва, де жирним шрифтом є НЕ наданою. Для того, що я міг зрозуміти ( ось посилання), жирний атрибут використовувався спочатку для встановлення виділеної версії 8 основних кольорів.

Історично склалося листування між жирними версіями 8 кольорів ANSI за замовчуванням та яскравими версіями 8 кольорів за замовчуванням. Ще в той день, коли кольорова програма вимагала відображення жирного тексту, емуляторам терміналів було просто простіше відобразити яскравішу версію будь-якого кольору тексту (і очікувати, що користувач інтерпретує це як жирний), ніж відображати шрифт з жирною вагою.

В основному, тут відбувається те, що для використання повної палітри соляризованих кольорів із помаранчевим , фіолетовим та всіма рівнями сірого кольори називаються жирним атрибутом , який, у свою чергу, посилається на альтернативні 8 кольорів Палітра ANSI.

Термінал розуміє це правильно і показує помаранчевий та коментар сірим кольором у звичайному наборі тексту, тоді як tmux додає їм непотрібний жирний шрифт. На закінчення, ліва сторона правильна, тоді як права - ні.

Питання 2

Чи є спосіб відключити жирне відтворення tmux ?
Мені ще належить провести деякі дослідження з цього приводу, і я оновлю цю відповідь, як тільки щось знайду.

Відповідь 2

І ось у нас є рішення! :)

Для того, щоб tmux поводився правильно, ми мусимо викликати його, щоб сказати йому, що ми перебуваємо в 256 кольорах.

TERM=xterm-256color /usr/bin/tmux

Для зручності ми могли б aliasце (тобто ви додасте alias tmux="<the line above>"до свого ~/.bashrc).

tmux правильно інтерпретує нежирний "жирний-альтернативний" кольори

Виклик tmuxяк tmux -2, примушуючи tmux запускатись із підтримкою 256 кольорів (замість того, щоб переосмислювати TERMзмінну навколишнього середовища), не дозволить правильно трактувати 8 кольорів " жирної альтернативи" (тобто більш яскравий варіант також спричинить за собою жирний набір тексту). Тому я настійно рекомендую використовувати рішення тут вище , мають як інтерпретацію коректних 256 кольорів і без сміливих «напівжирних» альтернативних квітів.


сильно люблю людину !!
shxfee
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.