我正在使用http://emacsformacosx.com/中的mac emacs,我需要在启动emacs时点击最大化的图标。
如何将最大化的emacs窗口设置为默认值?
答案 0 :(得分:9)
像这样启动emacs
emacs -mm
答案 1 :(得分:8)
Ryan McGeary的maxframe.el
在Aquamacs和Emacs.app上都适合我。我通过EmacsWiki找到了它:http://www.emacswiki.org/emacs/FullScreen。该页面讨论了一个修补版本,现在是一个404页面,但https://github.com/rmm5t/maxframe.el的原始版本似乎工作正常。
答案 2 :(得分:7)
这是我编写和使用的函数。当您成功按F11时,emacs会以4种模式切换:
(defun switch-fullscreen nil
(interactive)
(let* ((modes '(nil fullboth fullwidth fullheight))
(cm (cdr (assoc 'fullscreen (frame-parameters) ) ) )
(next (cadr (member cm modes) ) ) )
(modify-frame-parameters
(selected-frame)
(list (cons 'fullscreen next)))))
(define-key global-map [f11] 'switch-fullscreen)
答案 3 :(得分:5)
简短的回答是将以下内容添加到custom-set-variables
: -
(custom-set-variables
;; custom-set-variables was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
...
'(initial-frame-alist (quote ((fullscreen . maximized))))
...
)
以下是我想要作为解决同一问题的方法。 TL; DR
我面临同样的问题,但在所有应用程序中,而不仅仅是在Emacs中。为此,我将Mac上的快捷键cmd-m全局绑定到“缩放”菜单选项,该选项通常是绿色最大化按钮的菜单选项。但是,Emacs不提供“缩放”菜单选项,该选项通常位于“窗口”菜单项下。所以我最终得到了以下内容。
昨晚我刚刚编写了以下内容。
;; This defines cmd-m to do the same as clicking the green titlebar button
;; usually meant for the "Window -> Zoom" menu option in Mac apps
(defun zoom () "zoom, same as clicking the green titlebar button in Mac app windows"
(interactive)
(set-frame-parameter
nil 'fullscreen
(pcase (frame-parameter nil 'fullscreen)
(`nil 'fullheight)
(`fullheight 'maximized)
(`fullboth (ding) 'fullboth)
(`fullscreen (ding) 'fullscreen)
(_ nil))))
(global-set-key (kbd "s-m") 'zoom)
代码最后一行的这个键盘快捷键与我最初描述的全局到Mac cmd + m键绑定很顺利。你可以根据自己的需要定制它。我习惯按下cmd-m启动大多数应用程序,直到它适合屏幕,而Emacs就是其中之一。所以我不打扰initial-frame-alist
设置。
我今晚通过添加以下代码完成了我想要的功能集。
;; This defines ctrl-cmd-f to do the same as clicking the toggle-fullscreen titlebar
;; icon usually meant for the "View -> Enter/Exit Full Screen" menu option in
;; Mac apps
(defun toggle-fullscreen() "toggle-fullscreen, same as clicking the
corresponding titlebar icon in the right hand corner of Mac app windows"
(interactive)
(set-frame-parameter
nil 'fullscreen
(pcase (frame-parameter nil 'fullscreen)
(`fullboth nil)
(`fullscreen nil)
(_ 'fullscreen))))
(global-set-key (kbd "C-s-f") 'toggle-fullscreen)
; For some weird reason C-s-f only means right cmd key!
(global-set-key (kbd "<C-s-268632070>") 'toggle-fullscreen)
一些注意事项: -
pcase
,请注意不要将错误引用反引号作为文档中的引用而犯下同样的错误。fullscreen
是fullboth
的别名,并不是一个误称为后者的术语,因此我不仅将该案例作为{{1}的值处理但是每当我想要(frame-parameter nil 'fullscreen)
到set-frame-parameter
HTH
答案 4 :(得分:1)
https://stackoverflow.com/a/1029065/351716给出的答案对我有用(使用GNU Emacs v24.2.1)。要重新发布,请在.emacs
文件中定义以下函数:
(defun x11-maximize-frame ()
"Maximize the current frame (to full screen)"
(interactive)
(x-send-client-message nil 0 nil "_NET_WM_STATE" 32 '(2 "_NET_WM_STATE_MAXIMIZED_HORZ" 0))
(x-send-client-message nil 0 nil "_NET_WM_STATE" 32 '(2 "_NET_WM_STATE_MAXIMIZED_VERT" 0)))
为方便起见,您可以将命令绑定到密钥。我使用C-z
键,否则会最小化帧,这是我不需要的,但是当我偶然发现它时总是觉得很烦人:
(global-set-key (kbd "C-z") 'x11-maximize-frame)
正如我在评论中指出的那样,我添加到该答案中,使用此命令重复在正常帧状态和最大化状态之间循环,但有一点烦恼:在这两者之间,有一个奇怪的状态,帧几乎是不是垂直最大化。但这是一个小问题。