Emacs:菜单栏模式和工具栏模式自动设置为t

use*_*315 14 emacs elisp emacs24

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

最重要的问题是:我将菜单栏模式和工具栏模式设置为nil.

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

;;; No Scrollbar
(scroll-bar-mode nil)
Run Code Online (Sandbox Code Playgroud)

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

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

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

kin*_*ero 25

试试这些

 (tool-bar-mode -1)
 (menu-bar-mode -1)
 (scroll-bar-mode -1)
Run Code Online (Sandbox Code Playgroud)

更新:
传统上应该给出否定参数来禁用次要模式.请参阅emacs手册.(在emacs类型中:C-h r m次要模式RET


小智 11

从历史上看,传递给次模式的nil参数意味着切换次模式(即,您使用的代码可能会启用或禁用每个mior模式,具体取决于加载.emacs之前的初始值).在Emacs-24中,我改变了这个,所以nil意味着无条件地"启用".

这个决定是因为nil通常在没有提供arg时发生,如(flyspell-mode)或(add-hook'text-mode-hook'flyspell-mode),在这种情况下,用户通常真的意思是"启用"而不是"切换".