Como verificar se o Emacs está no modo GUI (e execute o `tool-bar-mode` somente então)?


16

Eu tenho esta linha no meu .emacsarquivo:

(tool-bar-mode 0)

porque eu odeio as barras de ferramentas na minha GUI emacs ( /Applications/Emacs.app/Contents/MacOS/Emacs).

Mas quando inicio meus outros emacs baseados em texto no terminal ( /opt/local/bin/emacs), ele reclama desse comando:

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

Como posso adicionar uma ifcondição para que ele executa o tool-bar-modecomando somente quando estou nas emacs GUI?

Obrigado!

Respostas:


22

Ok, eu mesmo encontrei. Basta adicionar

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

3

outra maneira de fazer isso seria:

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

assim, a função é chamada apenas se existir


0

Funciona para mim sem reclamar no Linux. Você pode tentar nilou, em -1vez de 0:

(tool-bar-mode nil)

O que acontece se você fizer emacs -nw?


0

O uso da window-systemvariável como booleano foi preterido . Em vez disso, use display-graphic-pou qualquer um dos outros display-*-p predicados que relatam recursos relacionados à interface do usuário específicos do quadro.

Caso você deseje que seu código seja compatível com versões anteriores do Emacs, o seguinte wrapper de compatibilidade é o caminho:

(if (< emacs-major-version 23)
    (or window-system (getenv "DISPLAY"))
  (display-graphic-p))
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.