Answers:
我有另一种方法,已经在Emacs 24.3和24.4以及Windows和GNU / Linux上进行了测试。我已经在我的init文件中放置了以下内容:
(add-to-list 'default-frame-alist '(fullscreen . maximized))
我相信这是从前一段时间我发现的StackOverflow答案中稍作修改的,但是现在看来似乎再也找不到了。
编辑:此方法的另一个好处是,它也适用于连接到Emacs服务器的新客户端(例如emacsclient -c
)。
emacsclient
,但是有些框架会最大化地启动它们,这会阻止正确使用它们,例如ediff控制面板,是否有解决方法?
调整...-frame-alist
init文件中的,以告诉Emacs如何最大化框架。您还可以选择多个方法来精确地最大化它。
alist
选项您有两种...-frame-alist
选择:
default-frame-alist
(如@Scott Weldon的回答)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))
initial-frame-alist
比default-frame-alist
使用诸如ediff之类的工具时有用得多。
在Emacs 24.4上,(toggle-frame-maximized)
切换当前帧的最大化状态。
另请参阅关于stackoverflow 的“ 最大化启动时的Emacs问题”和EmacsWiki上的“全屏”页面。
@Constantine的答案已经涵盖了如何通过修改init文件(如果使用Emacs 24.4)来实现此目的。
如果从命令行,破折号或类似Synapse或krunner的启动器启动Emacs,则可以指定-mm
选项(的缩写--maximized
)来获得相同的结果:
emacs -mm
该-mm
选项最初是在Emacs 23.2中引入的,因此此解决方案不限于最新的稳定版本。
该解决方案与此处发布的其他建议(所有这些都很棒)的不同之处在于,它使您可以根据情况决定是否要在启动时最大化Emacs框架。
如果您想要更永久的解决方案,可以alias
通过将以下内容添加到您的命令中来为上述命令设置.bashrc
:
alias emacs='emacs -mm'
emacs -fs
启动Emacs最大化到全屏,或最大程度地最大化到最大。
我正在使用以下内容:
(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)
)