14

我已经在我的系统上编译并构建了 Emacs24。在那之后,我的一些 .emacs 自定义已经停止工作。

最重要的问题是:我已将 menu-bar-mode 和 tool-bar-mode 设置为 nil。

;;; No Menu Bar
(menu-bar-mode nil)
;;; No tool bar
(tool-bar-mode nil)

;;; No Scrollbar
(scroll-bar-mode nil)

但是如果我启动 Emacs,它们总是设置为 t。

更糟糕的是:如果我使用 mini-buffer 将它设置为 nil,然后从头开始输入 menu-bar-mode 并评估表达式,它总是将其更改为 t。

任何想法为什么这可能是问题,我该如何解决?

4

2 回答 2

25

试试这些

 (tool-bar-mode -1)
 (menu-bar-mode -1)
 (scroll-bar-mode -1)

更新:
通常应该给出否定论点来禁用次要模式。请参阅 emacs 手册。(使用 emacs 类型:C-h r m次要模式RET

于 2012-02-24T05:53:47.990 回答
11

从历史上看,传递给次要模式的 nil 参数意味着切换次要模式(即,您使用的代码可能会启用或禁用每个次要模式,具体取决于加载 .emacs 之前的初始值是什么)。在 Emacs-24 中,我对此进行了更改,以便 nil 无条件地表示“启用”。

做出这个决定是因为 nil 通常在根本没有提供 arg 时发生,例如在 (flyspell-mode) 或 (add-hook 'text-mode-hook 'flyspell-mode) 中,在这些情况下,用户通常真的意思是“启用”而不是“切换”。

于 2012-02-25T04:55:09.053 回答