【问题标题】:How do I display the menu-bar in emacs every time I start up?每次启动时如何在emacs中显示菜单栏?
【发布时间】:2010-09-25 12:32:42
【问题描述】:

我把它放在我的 .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-apple-darwin,Carbon 版本 1.6.0)

【问题讨论】:

  • 您应该考虑升级到最新的 GNU Emacs:emacsformacosx.com
  • 我确实在 Linux 上获得了一个带有 Emacs 22.2.1 的菜单栏,这正是您在 .emacs 中发布的内容。因此,要么你的 .emacs 中有其他东西会关闭菜单栏,要么是 Mac/Carbon 特有的问题。
  • 我尝试了以下人们的建议;他们没有工作,但是当我故意在 .emacs 文件中放置一个错误以便它不会一直加载(我没有关闭括号)时,菜单栏出现了。奇怪的。 emacs的加载顺序是什么?是否有其他默认位置可以加载系统范围的 .emacs 文件?
  • 运行 emacs -q 表现出同样的行为。
  • default.el(如果存在,通常位于 site-lisp 目录中)在 .emacs 之后加载,但运行 emacs -q 应该会停止。很可能它是特定于 (mac-apple-darwin, Carbon 版本 1.6.0) 构建的其他东西。

标签: emacs menubar


【解决方案1】:

相关函数的文档说:

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

所以你可以试试(menu-bar-mode 1) 而不是(menu-bar-mode t)

也就是说,对我来说(Emacs 23.2.1),通过 M-x customize-variable menu-bar-mode 设置它会导致我的自定义设置变量中的条目与您在那里显示的相同,并且当我重新启动时它具有预期的效果。

不过,Emacs 版本之间可能存在差异。你是手动输入的吗?建议只使用customize 接口进行更改,因为犯错可能会破坏事情。或者您的其他设置之一可能无效?

(例如,在 Emacs 23.2.1 中,我无法自定义 gud-gdb-command-nameshell-dirtrack-verbose 变量。OTOH 我认为仍然可以从仅按需加载的库中自定义变量,所以这可能不会'没有任何意义。)

如果您想检查这个,您可以注释掉您自定义变量中的所有其他内容(但要注意最后的右括号:)

【讨论】:

  • 已确认:C-u 1 M-x menu-bar-mode -> 菜单栏模式已启用
  • 我尝试了你建议的一切(修改调用,注释掉其他自定义等)。我正在使用customize 界面来编辑这些东西,但这些建议都没有奏效。这可能是特定实现/平台的错误。
【解决方案2】:

您应该考虑升级到最新的 GNU Emacs:

emacsformacosx.com

【讨论】:

    【解决方案3】:

    我认为(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)
    

    【讨论】:

    • 您是否尝试过使用“-Q”调用 emacs(假设这在 OS X 上甚至是可能的)?这将阻止加载所有启动文件;如果它使 emacs 出现菜单栏,那么您知道某些启动文件正在阻止菜单栏出现。我会自己尝试,但无法使用 Mac。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-20
    相关资源
    最近更新 更多