设置 emacs 窗口起始位置和大小

emacs 启动后,是否可以以指定的大小显示在同一个位置?当然可以,通过下面这个 lisp 语句可以达到这个效果。

(setq default-frame-alist
      `((top . 0)
        (left . 0)
        (width . 172)
        (height . 60)
        ))

问题来了。如果你将这个配置写到配置文件中,同步到 svn。假定你有三台不同的电脑,有笔记本,也有台式机,显示器分辨率都是不同的,那么 emacs 在三台设置上的初始大小和位置是不同的。这意味着从 svn 上下载下来的配置文件,在每台电脑上需要先修改才能使用,而且这个修改不能提交到 svn 上。看起来不妥,怎么办?

一个解决办法是,将这个配置写到一个本地文件 local-gui.el 中,并将此文件设置成 svn 忽略。在正式配置文件中,调用加载这个本地文件。

(load-file (concat my-emacs-config-path "/local-gui.el"))

这样问题基本解决。其实还有更简单的方法。。。不用修改配置文件,直接修改 emacs 程序的启动参数就可以达到这个效果。

D:\emacs\bin\runemacs.exe -fh -g 80x52+650+0

80x52+650+0 就是设置 emacs 初始大小的位置的参数,80 为宽度,52 是调度, 650 是 x 坐标,0 是 y 坐标。