OSX中的全屏Emacs


12

有没有办法在OSX中以全屏模式使用Emacs。

我目前正在从http://emacsforosx.com/使用Emacs

编辑:自从Emacs 24.4版本发布以来,这个问题不再相关。请查看已接受的答案。


1
好吧,如果您仅在终端中访问emacs,则可以使终端窗口全屏显示。
Billjk 2012年

Answers:


9

Emacs 24.4中提供了此功能。从新闻文件:

非免费操作系统上的Emacs 24.4中的更改

...

改进了Mac OS X上的全屏支持。

支持本机(> = OSX 10.7)和“旧样式”全屏。自定义“ ns-use-native-fullscreen”以更改样式。对于> = 10.7,默认为native。

和:

新命令toggle-frame-fullscreen和分别toggle-frame-maximized绑定到<f11>M-<f10>


1
作为maxframe.el的原始作者,我完全支持此答案。
Ryan McGeary 2014年

1
谢谢。 toggle-frame-fullscreen有助于在单独的桌面上退出全屏状态,而其他一切都不会明显-例如,在创建的桌面上没有关闭窗口图标。
kjhughes

10

通过http://emacsforosx.com分发的Emacs版本不包含全屏选项。

如果您使用Homebrew软件包管理器,则可以通过以下方式安装具有全屏支持的Emacs:

brew install emacs --cocoa

然后,您需要将Homebrew链接Emacs.app/Applications目录中的一个:

ln -s `brew --prefix`/Cellar/emacs/23.2/Emacs.app /Applications/Emacs.app

现在,您将可以通过以下方式使用全屏模式 ns-toggle-fullscreen.


2
首先,此答案不再适用于emacs 24+,请参阅superuser.com/a/599029/78325以获取最新的答案。
亚伦·詹森

4

如果要保留您的GNU Emacs版本,可以使用以下两种经过测试的方法。

来自Amit的想法:Emacs:在Mac OS X上全屏显示 GNU(可可/下一步)Emacs 23:

我正在使用maxframe.el修补版本,并且该功能来自EmacsWiki页面:

(defvar maxframe-maximized-p nil "maxframe is in fullscreen mode")
(defun toggle-maxframe ()
  "Toggle maximized frame"
  (interactive)
  (setq maxframe-maximized-p (not maxframe-maximized-p))
  (cond (maxframe-maximized-p (maximize-frame))
        (t (restore-frame))))
(define-key global-map [(alt return)] 'toggle-maxframe)

不幸的是,这不会隐藏菜单栏或标题栏。

一篇文章建议:

如果要使GNU Emacs全屏显示,您应该做三件事:

  1. 禁用工具栏
    这可以完成执行(在Emacs内部)(tool-bar-mode -1)
  2. 禁用菜单栏
    可以完成执行(menu-bar-mode -1)
  3. 进入全屏模式
    您必须执行(set-frame-parameter nil 'fullscreen 'fullboth)

如果您想像我一样总是禁用工具栏和菜单栏,并且希望能够通过击键进入全屏显示(例如F11),请将其添加到.emacs中:

;; F11 = Full Screen
(defun toggle-fullscreen (&optional f)
  (interactive)
  (let ((current-value (frame-parameter nil 'fullscreen)))
    (set-frame-parameter nil 'fullscreen
      (if (equal 'fullboth current-value)
        (if (boundp 'old-fullscreen) old-fullscreen nil)
        (progn (setq old-fullscreen current-value)
          'fullboth)))))
(global-set-key [f11] 'toggle-fullscreen)

;; Disable tool-bar
(tool-bar-mode -1)

;; Disable Menu Bar
(menu-bar-mode -1)

3
如果您知道我的意思,这似乎可以提供最大化的屏幕,而不是全屏。
qazwsx 2012年

您的第二篇文章并非特定于Mac OS X,而是由Debian开发人员撰写的,其中包括焦点错误。
塔玛拉·威斯曼

@harrymc:幸运的是我遇到了这里,因为您在我的名字后面打了一个错字。焦点错误位于脚本调用的函数中,因此无法在脚本本身中修复。
Tamara Wijsman 2012年

2

我过去使用以下命令成功完成了此操作:

Emacs 23中可可版本的真正全屏显示

该前叉具有用于真正全屏的补丁程序,并且效果出色。

git clone git://github.com/typester/emacs.git
cd emacs
./configure --with-ns
make bootstrap
make install
mv nextstep/Emacs.app /Applications

然后,您可以简单地设置一个全局密钥并使用它:

(global-set-key (kbd "M-RET") 'ns-toggle-fullscreen)

M-RET转换为Alt+ Return。您可能需要提前安装git ...

另外,您可以在此处找到一些旧的二进制文件(包括补丁程序),因此只需要设置全局密钥即可。尽管我确实建议不要下载其他人的二进制文件,但是它们太旧了,无法信任...


如果您拥有/安装homebrew,则可以编译2012年3月的版本,该版本启用全屏支持:

brew install https://gist.github.com/raw/1946398/e7bbb52a4fe3ae0060e65df3d4a7462730ddc822/emacs.rb --force --HEAD --cocoa --use-git-head

我在EmacsWiki:全屏-Mac OS X-修补二进制文件中找到了它




0

尽管全屏支持已多次添加到Emacs的NextStep(Cocoa)版本中,但上游并未接受,因此普通Emacs版本没有此功能。您可能会在线找到补丁并自己应用。

在我看来,最可行的选择是在控制台模式的emacs的全屏模式下使用iTerm(或OS X 10.7上的Apple Terminal)。您可能要为创建别名 /Applications/Emacs-23.3.app/Contents/MacOS/Emacs -nw

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.