2010-09-25 283 views
1

我把這個在我的.emacs文件:如何在每次啓動時在emacs中顯示菜單欄?

(custom-set-variables                   
'(gud-gdb-command-name "gdb --annotate=1") 
'(large-file-warning-threshold nil) 
'(menu-bar-mode t) 
'(shell-dirtrack-verbose nil)) 
(custom-set-faces                   
) 
(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on) 

注意(menu-bar-mode t)。當我啓動emacs時,我必須M-x menu-bar-mode才能獲得菜單欄。我正在GNU Emacs的22.1.1(MAC-蘋果達爾文,低碳版1.6.0)

+2

你應該考慮升級到最新的GNU Emacs的:HTTP: //emacsformacosx.com/ – phils 2010-09-25 12:38:17

+0

我確實在Linux上得到了一個Emacs 22.2.1的菜單欄,正是你在'.emacs'中發佈的內容。因此,無論是在你的'.emacs'中還是有其他的東西來關閉菜單欄,或者它是Mac/Carbon特有的問題。 – Gilles 2010-09-25 13:58:13

+0

我嘗試了下面的人的建議;他們沒有工作,但是當我故意在.emacs文件中加入一個錯誤,以至於它不會一直加載(我沒有關閉一個文件),那麼菜單欄就出現了。奇怪的。什麼是emacs的加載順序?是否有其他默認位置在加載系統範圍的.emacs文件? – Avery 2010-09-26 00:37:52

回答

3

的相關函數的文檔說:

With a numeric argument, if the argument is positive, 
turn on menu bars; otherwise, turn off menu bars. 

所以,你可以嘗試,而不是(menu-bar-mode t)

(menu-bar-mode 1)

這就是說,對我來說(Emacs 23.2.1),通過設置這個Mxcustomize-variablemenu-bar-mode結果在我的自定義設置變量中出現在您的顯示位置,並且在重新啓動時它具有所需的效果。

雖然Emacs的版本可能有所不同。你手動輸入了嗎?建議僅使用customize界面進行更改,因爲犯錯可能會破壞事情。或者可能您的其他設置是無效的? (例如,在Emacs 23.2.1中我不能自定義一個gud-gdb-command-nameshell-dirtrack-verbose變量)OTOH我認爲它仍然可以自定義只能按需加載的庫中的變量,所以這可能並不意味着這可能並不意味着任何東西。)

你可以註釋掉一切在你的自定義變量,如果你想檢查這一點(但要注意的是最後的右括號:)

+0

已確認:'C-u 1 M-x菜單欄模式 - >菜單欄模式已啓用 – leoger 2010-09-25 12:46:16

+0

我嘗試了一切建議(修改調用,註釋掉其他自定義等)。我正在使用「自定義」界面來編輯這些內容,但這些建議都沒有奏效。這可能是一個特定實現/平臺的錯誤。 – Avery 2010-09-26 00:34:18

0

我不認爲(menu-bar-mode 1)custom-set-variables內所屬。相反,把它外面,就像您的來電add-hook

(custom-set-variables 
'(gud-gdb-command-name "gdb --annotate=1") 
'(large-file-warning-threshold nil) 
'(shell-dirtrack-verbose nil)) 
(custom-set-faces 
) 
(menu-bar-mode 1) 
(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on) 
+0

我試過這個:不起作用。 – Avery 2010-09-26 00:34:36

+0

您是否嘗試過使用「-Q」調用emacs(假設這甚至可能在OS X上)?這將阻止加載所有啓動文件;如果它使得emacs出現一個菜單欄,那麼你知道一些啓動文件是 - 防止 - 出現菜單欄。我會自己嘗試,但無法訪問Mac。 – offby1 2010-09-27 00:11:51

相關問題