如何检查Emacs是否处于GUI模式(然后仅执行`tool-bar-mode`)?


16

我的.emacs档案中有这行:

(tool-bar-mode 0)

因为我讨厌GUI emacs(/Applications/Emacs.app/Contents/MacOS/Emacs)中的工具栏。

但是,当我在终端(/opt/local/bin/emacs)中启动其他基于文本的emacs时,它会抱怨该命令:

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

如何添加if条件,以便tool-bar-mode仅当我在GUI emacs中时才执行命令?

谢谢!

Answers:


22

好吧,我自己找到的。只需添加

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

3

另一种方法是:

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

这样,仅当函数存在时才调用该函数



0

使用的window-system是一个布尔变量是不推荐使用。而是使用 报告框架特定的UI相关功能的display-graphic-p或其他任何display-*-p谓词。

如果您希望代码与早期版本的Emacs向后兼容,则可以采用以下兼容包装器:

(if (< emacs-major-version 23)
    (or window-system (getenv "DISPLAY"))
  (display-graphic-p))
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.