【问题标题】:Programmatically setting Emacs frame size以编程方式设置 Emacs 帧大小
【发布时间】:2008-12-02 21:18:50
【问题描述】:

我的 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* 加载时,它再次重置为小默认值。

谁能帮我修复上面的代码,让它在启动时“粘住”?

【问题讨论】:

标签: windows emacs dot-emacs


【解决方案1】:

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

【讨论】:

  • 我早就放弃了这个问题,用你的代码终于解决了:)
  • 简洁一点:(setq default-frame-alist '( (left . 0) (top . 0) (height . 65) (width . 100) ))
【解决方案2】:
(setq initial-frame-alist '(
            (top . 40) (left . 10)
            (width . 128) (height . 68)
            )
  )

【讨论】:

    【解决方案3】:

    你试过了吗:emacs -geometry 110x58+200+2 &

    发现于:

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

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

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

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

        【讨论】:

          【解决方案6】:

          对于windows上的emacs,我一般是放在注册表里的。

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

          (这将机器本地设置排除在我与许多其他机器共享的 .emacs 文件之外......)

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-09-08
            • 1970-01-01
            • 1970-01-01
            • 2011-06-14
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-12-24
            相关资源
            最近更新 更多