Кольори emacs на основі змінної середовища $ TERM


9

Хочу знати, чи можна зробити emacs під час запуску на екрані gnu або сесії tmux використовувати ті ж кольори, що і коли TERM=xterm. На екрані gnu або tmux, TERM=screenа emacs використовує інший набір кольорів порівняно з коли TERM=xterm.

Наприклад, коли TERM=xterm-256color, колір переднього плану font-lock-comment-face"Firebrick". Але коли TERM=screen-256color, він встановлюється на "шоколад1".

Щоб tmux працював належним чином, змінна TERM повинна бути встановлена ​​на екран або якусь похідну, тому скидання TERM не є для мене варіантом.


(Бажаю, що я можу прокоментувати ...) Мені незрозуміло, чи намагалися ви запустити emacs як: TERM=xterm emacsпримусити TERMналаштування змінної для emacs. Що відбувається, коли ти це робиш?
verdammelt

Я зараз експериментую з цим. Я поки що не виявив жодного поганого. Здається, tmux може бути налаштований на випромінення послідовностей ключів xterm (хоча TERM = xterm все ще не підтримується). На основі поширених запитань про tmux, tmux може підтримувати xterm у майбутньому замість лише екрана.
ALiX

Відповіді:


3

Визначенняfont-lock-comment-face включає в себе безліч варіантів для випадків різної підтримки кольору.

  • chocolate1Варіант використовується , коли є, по крайней мере , 88 доступних кольорів і «фон» є «темним».
  • FirebrickВаріант використовується , коли є, по крайней мере , 88 доступних кольорів і «фон» є «світло».

Різниця викликана який - то код , який дає особливе значення для значень TERM , які починаються з xterm, rxvt, dttermі eterm: він вважає їх мати «світло» фон.

Ви повинні мати можливість налаштувати frame-background-mode* до його lightзначення, щоб завжди використовувати «світлі» варіанти кольорів.

Якщо ваш Emacs не достатньо новий, щоб мати свою власну term/screen.el, то вам також потрібно буде адаптувати один для себе, який здійснює відповідні дзвінки з коригуванням кольору. Ви можете використовувати один з стовбура Emacs , або у мене є Сутність , яка включає в себе .emacs.d/lisp/term/screen.el(з деякими додатковими бітами визнати модифікатор + стрілки / Home / End послідовність , що надається tmux «S xterm-keysопція), а .emacsзміна необхідна , щоб він автоматично навантаження .

Звичайно, ще можуть бути інші біти коду, які безпосередньо перевіряють значення TERM і роблять щось інше для значень screen- і xterm-подібних…

* Mx настроювати змінний кадр-фон-режим

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