以下是我尝试过的方法:
- 使用适当的高度/宽度设置initial-frame-alist
- 设置default-frame-alist
- (仅限Windows) 通过
(w32-send-sys-command 61488)
发送消息给Emacs窗口,让其最大化 尝试了在某处找到的这个函数:
尝试在我的初始化文件的开头和结尾使用上述方法,以尝试消除其他初始化内容的干扰。不幸的是,以上方法都无效!对于其中一些方法,我可以看到我的emacs窗口在恢复到较小的默认大小之前正确地重新调整大小。如果我在初始化后运行上面的方法,emacs窗口确实可以正确调整大小。这到底是怎么回事?[附言:这里有其他SO问题,但没有一个答案有效]更新:答案让我想到,我的初始化文件中的其他东西可能会导致问题。而且确实是这样!经过一些尝试和错误,我找到了罪魁祸首。如果我注释掉以下行,一切都可以完美地工作:(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))))))
(tool-bar-mode -1)
工具栏和最大化窗口有什么关系?
现在的问题是:如何在我的init文件中禁用工具栏(毕竟,Emacs的工具栏很丑,占用了宝贵的屏幕空间)并最大化窗口?难道工具栏会影响窗口大小吗?
澄清一下,(tool-bar-mode -1) 可以关闭工具栏,但这行代码会影响Emacs窗口的最大化。因此,如果我尝试将最大化窗口和关闭工具栏的功能放在一起,最大化部分就会失败;如果注释掉工具栏部分,则最大化部分将正常工作。不管我使用什么解决方案(在我列出的4个解决方案中选择),都无济于事。
解决方案:(或者至少对我现在有效的方法)
这可能是Emacs的一个bug。解决方法是通过注册表禁用工具栏,而不是在.emacs文件中。将以下内容保存为 .reg 文件,并在Windows资源管理器中执行该文件:
Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\GNU\Emacs] "Emacs.Toolbar"="-1"
(这个解决方案是OtherMichael建议的工作版本)。