以编程方式设置Emacs框架大小

我的emacs(在Windows上)总是以设定的大小启动,这个大小非常小,如果我resize,在下次启动时就不会“记住”了。

我一直在玩下面的东西:

(set-frame-position (selected-frame) 200 2) ; pixels xy from upper left (set-frame-size (selected-frame) 110 58) ; rows and columns wh 

当我在暂存缓冲区中执行它时完全有效。 我把它放在我的.emacs中,尽pipe现在当我启动程序的时候,我可以看到临时设置为这个尺寸的帧,在*scratch*加载的时候,它又重新设置为小的默认值。

任何人都可以帮我修复上面的代码,以便在启动时“坚持”吗?

Solutions Collecting From Web of "以编程方式设置Emacs框架大小"

以下是我在~/.emacs

 (add-to-list 'default-frame-alist '(left . 0)) (add-to-list 'default-frame-alist '(top . 0)) (add-to-list 'default-frame-alist '(height . 50)) (add-to-list 'default-frame-alist '(width . 155)) 

你有没有试试这个:emacs -geometry 110×58 + 200 + 2&

发现在:

http://web.mit.edu/answers/emacs/emacs_window_size.64R.html

 (setq initial-frame-alist '( (top . 40) (left . 10) (width . 128) (height . 68) ) ) 

在Emacs 19和21之间,我曾经有一个完美的工作.emacs,通过区分默认帧和初始帧来完成你正在寻找的内容:

  (setq default-frame-alist '((foreground-color . "LightGray") (background-color . "Black") (cursor-color . "Medium Sea Green") (width . 80) (height . 36) (menu-bar-lines . 1) (vertical-scroll-bars . right))) 

  (setq initial-frame-alist (cons '(width . 96) (cons '(height . 72) (cons '(menu-bar-lines . 1) initial-frame-alist)))) 

唉,当我升级到Emacs 23.2时,上面的内容已经不再完整了。 Emacs不是我的职业。 我正在使用它作为一个工具,所以我不能花太多的时间钻研理解为什么。 所以我只是通过添加到Emacs Windows XP快捷方式“-geometry 96×72”来解决这个问题。 所以现在快捷方式的目标是:

 C:\emacs-23.2\bin\runemacs.exe -geometry 96x72 

对于Windows上的emacs,我通常把它放在注册表中。

 HKCU\Software\GNU\Emacs\ Emacs.Geometry REG_SZ "245x74" 

(这使机器本地设置不在我的.emacs文件中,我与其他许多机器共享…)

以前发布的解决方案都不能解决我调整大小的问题,所以我想分享一个额外的解决方案:启动时,Emacs 23使用某种字体,然后切换到用户定义的字体; 因此,如果这个字体很大,Emacs也会缩小窗口大小 ,使它适合屏幕。 然后,应用用户字体,并且窗口可能会比用户所期望的要小。 因此,在我的〜/ .Xresource中添加以下内容解决了这个问题:

 Emacs.font: -*-fixed-*-*-*-*-8-*-*-*-*-*-*-* Emacs.pane.menubar.*.fontList: 8x16 Emacs.menu*.fontList: -*-fixed-*-*-*-*-8-*-*-*-*-*-*-* Emacs.dialog*.fontList: -*-fixed-*-*-*-*-8-*-*-*-*-*-*-* 

这使得Emacs在启动时使用一个小字体,这样它的窗口不会太大,也不会被截断。 当然,你可能想在这里自定义你想要的字体,或者在Emacs init文件中。