如何在启动时最大化我的Emacs框架?


64

有没有办法最大化我的启动窗口?

目前,我在键盘上按了Control+ Windows Key+ Up,但是每次都这样做很麻烦。

我在Ubuntu 12.04上使用Emacs 24.4。


1
我不知道最大化emacs的组合键。谢谢你,还有下面的答案!
普拉萨纳

您是从哪里找到组合的?<kbd>![Windows Key][oldwinlogo]</kbd>这对我不起作用:-(
Prasanna,

Answers:


69

我有另一种方法,已经在Emacs 24.3和24.4以及Windows和GNU / Linux上进行了测试。我已经在我的init文件中放置了以下内容:

(add-to-list 'default-frame-alist '(fullscreen . maximized))

我相信这是从前一段时间我发现的StackOverflow答案中稍作修改的,但是现在看来似乎再也找不到了。

编辑:此方法的另一个好处是,它也适用于连接到Emacs服务器的新客户端(例如emacsclient -c)。


3
+1为精确答案。如果我可以再次接受这个答案-我真的会!
普拉萨纳

1
我喜欢使用的解决方案emacsclient,但是有些框架会最大化地启动它们,这会阻止正确使用它们,例如ediff控制面板,是否有解决方法?
marcanuy17年

@marcanuy:我不知道有什么办法可以解决,但值得为此提出一个新问题。
Scott Weldon

30

调整...-frame-alistinit文件中的,以告诉Emacs如何最大化框架。您还可以选择多个方法来精确地最大化它。

alist 选项

您有两种...-frame-alist选择:

  1. default-frame-alist (如@Scott Weldon的回答)
  2. initial-frame-alist

如果使用default-frame-alist,它将最大化所有框架:第一个框架和您创建的任何其他框架。那可能不是您想要的(或者也许是:我要判断谁?)。

如果使用initial-frame-alist,它将最大化Emacs在启动时创建的框架,而不会触摸您随后创建的任何框架。

最大化选项

有关最大化选项,请参见手册的此节点以获取详细信息。简短的版本是您可以将fullscreen参数设置为:

  • fullwidth (使框尽可能宽,不要触摸垂直方向)
  • fullheight (使框架尽可能高,不要触摸水平线)
  • fullboth (将高度和宽度设置为屏幕尺寸)
  • maximized (使它最大化)

fullboth和之间的区别maximized是您可以使用鼠标调整前者的大小,而使用后者则不能。

因此,例如,这些行将1)创建一个最大化的初始帧,并2)在每个后续帧上创建全高(但不是全角)帧:

(add-to-list 'initial-frame-alist '(fullscreen . maximized))
(add-to-list 'default-frame-alist '(fullscreen . fullheight))

3
确实initial-frame-alistdefault-frame-alist使用诸如ediff之类的工具时有用得多。
giordano 2014年


9

@Constantine的答案已经涵盖了如何通过修改init文件(如果使用Emacs 24.4)来实现此目的。

如果从命令行,破折号或类似Synapsekrunner的启动器启动Emacs,则可以指定-mm选项(的缩写--maximized)来获得相同的结果:

emacs -mm

-mm选项最初是在Emacs 23.2中引入的,因此此解决方案不限于最新的稳定版本。


该解决方案与此处发布的其他建议(所有这些都很棒)的不同之处在于,它使您可以根据情况决定是否要在启动时最大化Emacs框架。

如果您想要更永久的解决方案,可以alias通过将以下内容添加到您的命令中来为上述命令设置.bashrc

alias emacs='emacs -mm'

2
该解决方案的另一个好处是emacs启动已经最大化。初始化文件的解决方法使其在启动过程中切换为最大化,这很烦人。

1
要添加到此答案:emacs -fs启动Emacs最大化到全屏,或最大程度地最大化到最大。
Teemu Leisti

6

要最大化启动Emacs,请添加到您的init文件中:

;; Start maximised (cross-platf)
(add-hook 'window-setup-hook 'toggle-frame-maximized t)

如果您想进入全屏模式,或者像他们现在所说的那样,进入无干扰模式:

;; Start fullscreen (cross-platf)
(add-hook 'window-setup-hook 'toggle-frame-fullscreen t)

注意这也适用于Windows。


1

我正在使用以下内容:

(when (eq system-type 'gnu/linux)
  (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)))
  (run-with-idle-timer 0.01 nil 'x11-maximize-frame)
  )

(when (eq system-type 'windows-nt)
  (w32-send-sys-command 61488)
)
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.