Як перевірити, чи Emacs перебуває в режимі графічного інтерфейсу (і виконувати `режим панелі інструментів 'лише тоді)?


16

У моєму .emacsфайлі є такий рядок :

(tool-bar-mode 0)

тому що я ненавиджу панелі інструментів у своїх GUI emacs ( /Applications/Emacs.app/Contents/MacOS/Emacs).

Але коли я запускаю свої інші текстові emacs в терміналі ( /opt/local/bin/emacs), він скаржиться на цю команду:

Symbol's function definition is void: tool-bar-mode

Як я можу додати ifумову, щоб вона виконувала tool-bar-modeкоманду лише тоді, коли я перебуваю в графічному інтерфейсі GUI?

Спасибі!

Відповіді:


22

Гаразд, знайшов це сам. Просто додайте

;; turn off toolbar
(if window-system
    (tool-bar-mode 0))

3

Ще один спосіб зробити це:

 (if (functionp 'tool-bar-mode) (tool-bar-mode 0))

як це, функція викликається лише в тому випадку, якщо вона існує



0

Використання window-systemзмінної як булевої застаріло . Натомість використовуйте display-graphic-pабо будь-який інший display-*-p предикат, який є у конкретних можливостях, що стосуються фрейму звіту.

У випадку, якщо ви хочете, щоб ваш код був сумісний з попередніми версіями Emacs, наступним способом сумісності є такий шлях:

(if (< emacs-major-version 23)
    (or window-system (getenv "DISPLAY"))
  (display-graphic-p))
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.