Come verificare se Emacs è in modalità GUI (ed eseguire `tool-bar-mode` solo allora)?


16

Ho questa linea nel mio .emacsfile:

(tool-bar-mode 0)

perché odio le barre degli strumenti nella mia interfaccia grafica emacs ( /Applications/Emacs.app/Contents/MacOS/Emacs).

Ma quando avvio i miei altri emacs basati su testo nel terminale ( /opt/local/bin/emacs) si lamenta di quel comando:

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

Come posso aggiungere una ifcondizione in modo che esegua il tool-bar-modecomando solo quando mi trovo nella GUI emacs?

Grazie!

Risposte:


22

Ok, l'ho trovato da solo. Basta aggiungere

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

3

un altro modo per farlo sarebbe:

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

in questo modo, la funzione viene chiamata solo se esiste



0

L'uso della window-systemvariabile come booleano è deprecato . Utilizzare invece display-graphic-po uno qualsiasi degli altri display-*-p predicati che riportano le funzionalità specifiche dell'interfaccia utente del frame di report.

Se vuoi che il tuo codice sia retrocompatibile con le versioni precedenti di Emacs, allora il seguente wrapper di compatibilità è la strada da percorrere:

(if (< emacs-major-version 23)
    (or window-system (getenv "DISPLAY"))
  (display-graphic-p))
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.