Emacs: режим меню и режим панели инструментов автоматически устанавливаются на t

Я собрал и создал Emacs24 в своей системе. После этого некоторые из моих настроек .emacs перестали работать.

Самая важная проблема заключается в следующем: я установил режим меню-bar и mode-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, используя мини-буфер, а затем перейдите к починке и введите режим меню-bar и оцените выражение, оно всегда меняет его на t.

Любые идеи, почему это может быть проблемой, и как я могу ее исправить?

Ответы

Ответ 1

Попробуйте эти

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

UPDATE:
Обычно нужно дать отрицательный аргумент, чтобы отключить второстепенный режим. Пожалуйста, обратитесь к руководству emacs страница. (с типом emacs: C-h r m второстепенные режимы RET

Ответ 2

Исторически, аргумент nil, переданный второму режиму, предназначен для переключения второстепенного режима (т.е. используемый вами код мог включать или отключать каждый из этих режимов mior в зависимости от того, каково их начальное значение перед загрузкой .emacs). В Emacs-24 я изменил это так, что nil означает "включить" безоговорочно.

Это решение было принято, потому что nil обычно возникает, когда arg просто не предоставляется, как в режиме (flyspell-mode) или в режиме flyspell-режима "add-hook" в режиме "text-mode-hook", и в этих случаях пользователь обычно действительно означает "включить", а не "переключать".