【发布时间】:2010-10-23 08:22:07
【问题描述】:
这让我发疯了:我只是想让 Emacs 最大化我在启动时拥有的任何屏幕分辨率。理想情况下,我喜欢适用于任何屏幕分辨率的跨平台(Windows 和 Linux)解决方案,但我什至无法让它在具有硬编码尺寸的 Window XP 上运行。
这是我尝试过的:
- 使用适当的高度/宽度设置初始帧列表
- 设置默认框架列表
- (Windows 特定的东西)通过
(w32-send-sys-command 61488)向 emacs 窗口发送消息,告诉它最大化 -
尝试了我在某处找到的这个功能:
(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 窗口会正确调整大小。这到底是怎么回事?
[附注还有其他关于此的 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 建议的工作版本)。
【问题讨论】:
-
您是通过快捷方式还是从命令行启动 emacs?
-
我使用 runemacs.exe 包装器启动它,如果我理解正确,它只是在 Windows 上启动 emacs 二进制文件而无需命令行提示。如果您要建议 -geometry 选项,那对我没有用,因为我有太多地方可以独立启动 emacs 和其他选项,并且将它们全部更改为包含 -geometry 选项是不切实际的......
-
本来打算建议-fs,但在实用性方面有相同的区别。