Emacs: menu-bar-mode 和 tool-bar-mode 自动设置为 t

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。

更糟糕的是:如果我使用迷你缓冲区将其设置为nil,然后转到scratch并键入menu-bar-mode并评估表达式,它总是将其更改为t。

有任何想法为什么会出现这个问题,以及我如何解决它?


与其调用函数,我将全局变量tool-bar-mode设置为nil,这似乎有效。否则,如@kindahero所说,使用负数调用该函数。您可以在使用M-x apropos查看tool-bar-mode文档中看到这一点。 - Mark
2个回答

25

试一下这些

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

更新:
传统上,应该使用负参数来禁用一个次要模式。请参考 Emacs 手册 页面。(在 Emacs 中输入: C-h r m minor modes RET


成功了!谢谢!为什么 nil 没有被识别出来呢? - user916315

11

历史上,将nil参数传递给一个次要模式意味着切换此次要模式(即,你使用的代码可能根据在加载.emacs之前它们的初始值是什么来启用或禁用这些次要模式)。

在Emacs-24中,我对此进行了更改,以便nil无条件地意味着“启用”。

作出这个决定是因为通常情况下,当arg没有被提供时,nil就会出现,例如(flyspell-mode)或(add-hook 'text-mode-hook 'flyspell-mode),而在那些情况下,用户通常真正需要的是“启用”,而不是“切换”。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接