2012-02-24 28 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),並且在這些情況下,用戶通常確實意味着「啓用」而不是「切換」