Різна тема для -nw (термінал)


16

Я запускаю emacs (24.5.1) на Mac OSx і використовую соляризовану тему. Для версії gui тема добре працює. Якщо я запускаю програму із прапором -nw:

/Applications/Emacs.app/Contents/MacOS/Emacs -nw

кольори для теми отримують все виграшно. Я припускаю, що це тому, що:

TERM=xterm-256color

Що мені потрібно вкласти у своїх .emacs, щоб дати таку умовну поведінку:

if (gui)
  theme=solarized
if (-nw)
  theme=wheatgrass

??


Мені спокусилося сказати вам написати щось на кшталт: (if (window-system) ...) Тоді я прочитав документацію:> window-system - це змінна, визначена у "C вихідному коді". > Його значення дорівнює нулю. Це термінально-локальна змінна; глобальне значення - те саме. >> Документація: Назва віконної системи, через яку відображається обраний кадр>. Значення є символом:> - нуль для кадру termcap (a> термінал, що містить лише символи),> - 'x' для кадру Emacs, який насправді є X> вікном,> - 'w32' для кадру Emacs, який є вікно в MS-Windows> дисплей,> - 'ns' для кадру Emacs на GNUstep або Macintosh
Nsukami _

1
Якщо вам потрібно лише знати, як перевірити, чи працює emacs у gui або терміналі, я вважаю, що це дублікат або це: emacs.stackexchange.com/questions/7151/… Якщо вам також потрібно знати, як увімкнути теми з elisp, тоді я думаю, що це стоїть, як це власне питання. Якщо вам потрібно знати, як програмно включити теми з elisp, я б додав це конкретно до основи вашого питання.
Джордон Біондо

2
Існують теми, які добре виглядають як у графічному, так і не графічному середовищі. Альтернативним рішенням було б використання однієї такої теми.
Джордон Біондо

Відповіді:


24

Використовуйте display-graphic-pдля визначення, чи є Emacs у графічному інтерфейсі чи ні.

Якщо припустимо встановити і завантажувати соляризовані:

(if (display-graphic-p) 
    (enable-theme 'solarized) 
  (enable-theme 'wheatgrass))

Дивіться також: Чи існує спосіб виявити, що emacs працює у терміналі?

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