我正在尝试检测我正在启动emacs的屏幕大小,并相应地调整它开始的窗口的大小和位置(我猜这是emacs中的框架).我正在尝试设置我的.emacs,以便我总是得到一个"相当大"的窗口,它的左上角靠近屏幕的左上角.
我想这对于一般情况来说是一个很大的问题,所以为了缩小范围,我对Windows和(Debian)Linux上的GNU Emacs 22最感兴趣.
这让我发疯了:我只是想让Emacs最大化到启动时的屏幕分辨率.理想情况下,我喜欢适用于任何屏幕分辨率的跨平台(Windows和Linux)解决方案,但我甚至无法使用甚至硬编码大小的Window XP.
这是我尝试过的:
(w32-send-sys-command 61488)尝试了我在某处发现的这个功能:
(defun toggle-fullscreen ()
"toggles whether the currently selected frame consumes the entire display
or is decorated with a window border"
(interactive)
(let ((f (selected-frame)))
(modify-frame-parameters
f
`((fullscreen . ,(if (eq nil (frame-parameter f 'fullscreen))
'fullboth
nil))))))
Run Code Online (Sandbox Code Playgroud)不幸的是,以上都没有!对于上面的一些,我可以看到我的emacs窗口在一瞬间正确调整大小,然后恢复到较小的默认大小.如果我在初始化后运行上面的方法,emacs窗口会正确调整大小.世界上到底发生了什么?
[ps还有其他SO问题,但没有一个答案有效]
更新:
答案让我觉得我的init文件中的其他东西导致了问题.确实是这样!经过一些尝试和错误,我找到了罪魁祸首.如果我注释掉以下行,一切都很完美:
(tool-bar-mode -1)
Run Code Online (Sandbox Code Playgroud)
工具栏与最大化窗口有什么关系?
所以现在的问题是:如何禁用工具栏(毕竟,emacs的工具栏很丑陋,占用了宝贵的屏幕空间)并且在我的init文件中最大化了窗口?可能是工具栏干扰窗口大小的错误?
澄清:(工具栏模式-1)关闭工具栏,但此行干扰最大化Emacs窗口.因此,如果我尝试将函数放到最大化窗口并关闭工具栏,则最大化部分将失败; 如果工具栏部分已注释掉,则最大化部分将正常工作.它甚至不重要我使用什么解决方案(在我列出的4个中).
解决方案:(或者至少现在对我有用)
这可能是Emacs中的一个错误.解决方法是通过注册表禁用工具栏,而不是.emacs.将以下内容另存为.reg文件,并在Windows资源管理器中执行该文件:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\GNU\Emacs]
"Emacs.Toolbar"="-1"
Run Code Online (Sandbox Code Playgroud)
(此解决方案是OtherMichael建议的工作版本).
我正在使用来自http://emacsformacosx.com/的mac emacs ,我需要在启动emacs时单击最大化的图标.
如何将最大化的emacs窗口设置为默认值?
我想在守护进程模式下运行我的Emacs,然后emacsclient用来实际显示东西.但是,如果我跑emacsclient filename,它会出现在终端,这不是我想要的; 我不得不把它传给它-c.
但是,该选项总是创建一个新帧,这不是我想要的 - 我宁愿只有一个帧,并且如果它已经存在,则在同一帧中的新缓冲区中打开东西; 否则,它应该让我成为一个新的框架.但是,我不知道该怎么做.
另外,我希望最大化一个帧,我通常用-mm选项实现我的起始Emacs ; 我如何确保emacsclient最大化的框架?
我已经通过http://emacsformacosx.com/安装了Emacs
在 ~/.emacs.d/init.el
(tool-bar-mode -1)
(toggle-frame-maximized)
Run Code Online (Sandbox Code Playgroud)
它应该在启动时最大化Emacs。它进行了某种程度的最大化,但在顶部(菜单栏之间,Apple徽标下方)留有空隙。正如您在屏幕截图上所看到的:

如何确保Emacs填满屏幕。
PS,我不是从全屏模式看。