我的文件中有这一行.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 emacs 中时才执行命令?
谢谢!
答案1
好的,我自己找到了。只需添加
;; turn off toolbar
(if window-system
(tool-bar-mode 0))
答案2
另一种方法是:
(if (functionp 'tool-bar-mode) (tool-bar-mode 0))
像这样,只有当函数存在时才会调用它
答案3
它在 Linux 上对我来说毫无问题。你可以尝试nil
或-1
代替0
:
(tool-bar-mode nil)
如果你这么做,会发生什么emacs -nw
?
答案4
将window-system
变量用作布尔值是已弃用。相反,使用display-graphic-p
或任何其他display-*-p
报告框架的特定 UI 相关功能的谓词。
如果你希望你的代码与以前版本的 Emacs 向后兼容,那么以下兼容性包装器是你的最佳选择:
(if (< emacs-major-version 23)
(or window-system (getenv "DISPLAY"))
(display-graphic-p))