改变emacs启动窗口大小的两种方法

很多时候,emacs并不是按照你的想像去启动的.你会发现它可能启动后占据了两个或更多窗口.或者,你喜欢全屏工作方式,但每次启动后最大化总是一件很麻烦的事情.在日常应用中,我总结了以下两种方法,
第一种方法:
在你的 ~/.Xdefaults 中增加下面这行
Emacs.geometry: 80x30
然后运行 xrdb ~/.Xdefaults
这样emacs的启动窗口就被设为80列x30行的大小
你可以按照自己的要求设置
Emacs.geometry: WIDTHxHEIGHT+XOFF+YOFF
其中WIDTH, HEIGHT分别表示窗口的宽度和高度,可选的XOFF和YOFF表示启动窗口的左上角座标。
例如:
Emacs.geometry: 80x30+20+10
表示令窗口大小为80x30,启动后左上角处于(20,10)处,很简单,不是么

第二种方法:
在配置文件中配置,配置文件通常在你的用户目录,为.emacsrc.
加入下面一行:
(setq default-frame-alist
'((height . 35) (width . 100) (menu-bar-lines . 20) (tool-bar-lines . 0)))
由于后一种是写在配置文件中的,所以相对来说比较方便.比较方便
原因?且看我慢慢摆来:

如果在~/.emacs 里面设置启动窗口,你会发现尽管窗口会显示成你所设置的大小,但位置仍然不对,哪怕是你设置了屏幕0,0的坐标emacs启动后也不会在屏幕的边上角,盖 是因为emacs在此之前已经通过读取默认设置,确定了窗口的初始屏幕位置,然后再读你的.emacs文件里的窗口位置和大小,此时,大小参数起作用了, 而位置的参数仍然是在默认基础之上起作用而已。比如,如果默认的emacs是10,10的窗口坐标,你如果在.emacs里面设置了窗口坐标是15, 15,那么真正的窗口坐标则会是:10+15=25------> 25,25,而非你想要的15,15。


于是,那 么,so,这样,窗口仍然会出桌面边界。再唠叨一遍我的分析:emacs在加载时,~/.Xdefaults文件是比~/.emacs预先被emacs读 取的,但emacs会根据~/.Xdefaults文件中的参数调整窗口位置并取代其默认的启动位置(而非像在.emacs里设置位置那样的是坐标相 加),所以我们要想定义emacs的窗口启动位置,在~/.Xdefaults里面设置才是比较好的解决方法--emacs最基础的那个默认设置在哪里, 我目前还不知道,慢慢学习吧。

综上所述,对于emacs 23(我只试过23 snapshot版本)来说,调整字体最便捷的方法莫如在~/.emacs里,调整程序窗口启动时在屏幕上的位置,则要在~/.Xdefaults里。