以编程方式设置Emacs帧大小

时间:2008-12-02 21:18:51

标签: windows emacs dot-emacs

我的emacs(在Windows上)总是以设定的大小启动,这个规模相当小,如果我调整它的大小,它就不会在下次启动时“记住”。

我一直在玩以下内容:

(set-frame-position (selected-frame) 200 2) ; pixels x y from upper left
(set-frame-size (selected-frame) 110 58) ; rows and columns w h

当我在暂存缓冲区中执行它时,它完全有效。我把它放在我的.emacs中,虽然现在当我启动程序时,我可以看到暂时设置为该大小的帧,在*scratch*加载时,它会再次重置为小的默认值。

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

6 个答案:

答案 0 :(得分:38)

以下是我在~/.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))

答案 1 :(得分:4)

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

答案 2 :(得分:3)

你试过这个:emacs -geometry 110x58 + 200 + 2&

发现于:

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

答案 3 :(得分:3)

之前发布的解决方案都没有解决我的调整大小问题,所以我想我会分享一个额外的解决方案:启动时,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文件中自定义所需的字体。

答案 4 :(得分:2)

在Emacs 19和21之间,我曾经有一个完美的.emacs,通过区分default-frame和initial-frame来完成你正在寻找的东西:

  (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 96x72”来解决这个问题。因此,快捷方式目标现在看起来:

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

答案 5 :(得分:1)

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

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

(这使我的.emacs文件保留了机器本地设置,我与许多其他机器共享......)