这让我发疯:我只是想让 Emacs 最大化到我在启动时拥有的任何屏幕分辨率。理想情况下,我喜欢适用于任何屏幕分辨率的跨平台(Windows 和 Linux)解决方案,但我什至无法让它在具有硬编码尺寸的 Window XP 上运行。
这是我尝试过的:
- 使用适当的高度/宽度设置初始帧列表
- 设置默认帧列表
- (Windows 特定的东西)向 emacs 窗口发送消息,告诉它通过最大化
(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))))))
- 在我的 init 文件的开头和结尾都尝试了上述方法,以尝试消除其他 init 事物的干扰。
不幸的是,以上都不起作用!!对于上述某些情况,我可以看到我的 emacs 窗口在一瞬间正确调整大小,然后恢复为较小的默认大小。如果我在初始化后运行上述方法,emacs 窗口会正确调整大小。这里到底发生了什么?
[ps对此还有其他SO问题,但没有一个答案有效]
更新:
答案让我认为我的 init 文件中的其他内容导致了问题。确实如此!经过一番尝试和错误,我找到了罪魁祸首。如果我注释掉以下行,一切正常:
(tool-bar-mode -1)
工具栏到底与最大化窗口有什么关系?
所以现在的问题是:如何禁用工具栏(毕竟,emacs 的工具栏很丑,占用宝贵的屏幕空间)并最大化我的 init 文件中的窗口?工具栏干扰窗口大小可能是一个错误?
澄清: (tool-bar-mode -1) 关闭工具栏,但这条线会干扰 Emacs 窗口的最大化。因此,如果我尝试将功能最大化窗口并关闭工具栏,则最大化部分将失败;如果工具栏部分被注释掉,那么最大化部分就可以了。我使用什么解决方案(在我列出的 4 个中)甚至都无关紧要。
解决方案:(或者至少现在对我有用)
这可能是 Emacs 中的一个错误。解决方法是通过注册表禁用工具栏,而不是在 .emacs 中。将以下内容另存为 .reg 文件,并在 Windows 资源管理器中执行该文件:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\GNU\Emacs]
"Emacs.Toolbar"="-1"
(此解决方案是 OtherMichael 建议的工作版本)。