如何强制Emacs不使用Mountain Lion的全屏样式?

9
我是一个重度的Emacs用户。但是,在我的Mac上,如果我将Emacs切换到全屏模式,它会使用Mountain Lion的全屏样式,将Emacs放置在另一个桌面上。在这种全屏模式下,由于我无法将其用于显示Emacs缓冲区(您可以在下面的图片中看到),因此浪费了前两行。此外,当我更改桌面时的动画很烦人。
我想知道是否有任何解决方案强制Emacs不使用Mountain Lion的全屏样式。我只想要一个最大化的显示区域(隐藏菜单栏,隐藏标题栏等),就像在使用VLC 1.x全屏播放视频时一样。

你忘记附上图片了 ;-) - Marc Plano-Lesay
4个回答

7

Emacs 24有一个选项,不使用独立的桌面全屏Mac OS功能:

(setq ns-use-native-fullscreen nil)

它仍然覆盖整个屏幕,包括码头,并隐藏窗口标题栏。

在设置了这个变量之后,你可以使用M-xtoggle-frame-fullscreen切换到全屏模式。

另外,不要忘记隐藏无用的工具栏:

(tool-bar-mode -1)

我正在使用Emacs 24.3,你在使用哪个版本的Emacs?我找不到变量ns-use-native-fullscreen和toggle-frame-fullscreen函数。它需要任何补丁吗? - tmtxt
@tmtxt,我正在使用从brew安装的Emacs:brew install emacs --cocoa --srgb - katspaugh
有没有办法通过单击工具栏中的最大化按钮来使其工作,而不是手动调用 toggle-frame-fullscreen?(使用它会使用狮子样式全屏)当关闭狮子模式时,MacVim会这样做。 - SkinnyG33k

5
您可以进行以下操作:
  • 使用(setq ns-auto-hide-menu-bar t)自动隐藏菜单栏

  • 使用(tool-bar-mode -1)隐藏工具栏(我觉得它没什么用)。

  • 将标题栏放在屏幕顶部上方。虽然无法通过拖动实现,但Mac OS X端口允许您以编程方式将其放置在那里。例如,您可以使用:(set-frame-position (selected-frame) 0 -24)。注意:这需要隐藏菜单栏。

  • 将窗口大小调整为所需大小,例如:(set-frame-size (selected-frame) 80 85)。(不幸的是,由于操作系统的限制,您不能手动将窗口框架调整为高于显示器的高度。)

使用6x8字体,在1600x1200监视器上,编辑区域将有148行。我使用两个这样的监视器,并将我的Emacs帧分成六列。通过使用follow-mode,我可以看到888个连续的代码行。


1
@Lindydancer 好的,让我试着检查一下问题。如果我能找到原因,我会让你知道并更新该功能。 - tmtxt
@Lindydancer,你能给我列出你在emacs中安装的包列表吗?我使用的是emacs starter kit,也许有一些问题。 - tmtxt
哦,那个列表会很长……但是,当我使用 -Q 选项启动Emacs时,它对我有效,即不加载任何额外的Emacs包。我会把赌注放在这与10.8有关或者与操作系统的某些设置有关。顺便说一句,你可以尝试一下Emacs的"夜间版本",可能有一些尚未发布的分支中的错误修复。 - Lindydancer
Q 对我没用,但夜间版本可以。我尝试了来自此网站 http://emacsformacosx.com/builds 的最新夜间构建 Emacs-2013-12-21_01-33-31-115660-universal-10.6.8.dmg。然而,还有另一个问题。您可以在这里的图片中看到 https://dl.dropboxusercontent.com/u/12687135/emacs.png 我可以将窗口向上移出屏幕边框,但我无法调整窗口底部的大小。这是我能调整的最大值。 - tmtxt
1
太好了!现在它按预期工作了。非常感谢!我正在等待稳定版本。 - tmtxt
显示剩余11条评论

2
(toggle-frame-maximized)

如果您的旧版本没有此功能,您可能需要使用开发者构建(例如Emacs Trunk)。但是,菜单栏和框架标题仍将可见。


0

我曾经遇到过同样的问题。现在我使用带有-nox选项的Emacs和iTerm2。你可以很好地全屏幕使用iTerm2,并使用TotalSpaces2避免动画(尽管它需要花费大约10美元)。通过Quicksilver中的触发器,我现在几乎像Xmonad一样使用它。(很遗憾苹果不支持关闭窗口切换动画。)


我也使用Quicksilver触发器。然而,问题在于当我打开许多终端窗口时,触发器只会激活终端应用程序。它无法知道要直接跳转到iTerm2中的哪个窗口。 - tmtxt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接