2012-02-24 30 views
14

我在我的系统上编译和构建了Emacs24。之后,我的一些.emacs自定义已停止工作。Emacs:菜单栏模式和工具栏模式自动设置为t

最重要的问题是:我已经设置菜单栏模式和工具栏模式为零。

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

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

但是,如果我启动Emacs,它们始终设置为t。更糟糕的是,如果我使用迷你缓冲区将其设置为零,然后进入草稿并键入menu-bar-mode并评估表达式,它总是将其更改为t。

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

+0

我没有调用该函数,而是将全局变量工具栏模式设置为nil,这似乎有效。否则,就像@ kindahero所说的那样,用负数来调用函数。你可以使用M-x apropos在工具栏模式的文档中看到这个效果 – 2012-02-24 06:23:32

回答

25

尝试这些

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

UPDATE:
传统上应该给予否定的说法禁止未成年人模式。请参阅emacs手册page。 (用emacs的类型:C-h r m次要模式RET

+0

它工作! 谢谢!任何理由为什么零没有得到承认? – user916315 2012-02-24 09:10:02

+0

更新了答案 – kindahero 2012-02-24 10:24:56

11

从历史上看,通过对未成年人模式一个无参数意味着切换轻微模式(即您使用的可能启用或禁用取决于每个那些mior模式的代码是什么是在加载.emacs之前的初始值) 在Emacs-24中,我改变了这个设置,使nil无条件地表示“启用”

做出这个决定是因为nil通常在arg没有提供时发生, in(flyspell-mode)或in(add-hook'text-mode-hook'flyspell-mode),并且在这些情况下,用户通常确实意味着“启用”而不是“切换”