当前位置:  开发笔记 > 前端 > 正文

如何设置Emacs窗口的大小?

如何解决《如何设置Emacs窗口的大小?》经验,为你挑选了8个好方法。

我正在尝试检测我正在启动emacs的屏幕大小,并相应地调整它开始的窗口的大小和位置(我猜这是emacs中的框架).我正在尝试设置我的.emacs,以便我总是得到一个"相当大"的窗口,它的左上角靠近屏幕的左上角.

我想这对于一般情况来说是一个很大的问题,所以为了缩小范围,我对Windows和(Debian)Linux上的GNU Emacs 22最感兴趣.



1> Bryan Oakley..:

如果要根据分辨率更改大小,可以执行以下操作(根据您的特定需要调整首选宽度和分辨率):

(defun set-frame-size-according-to-resolution ()
  (interactive)
  (if window-system
  (progn
    ;; use 120 char wide window for largeish displays
    ;; and smaller 80 column windows for smaller displays
    ;; pick whatever numbers make sense for you
    (if (> (x-display-pixel-width) 1280)
           (add-to-list 'default-frame-alist (cons 'width 120))
           (add-to-list 'default-frame-alist (cons 'width 80)))
    ;; for the height, subtract a couple hundred pixels
    ;; from the screen height (for panels, menubars and
    ;; whatnot), then divide by the height of a char to
    ;; get the height we want
    (add-to-list 'default-frame-alist 
         (cons 'height (/ (- (x-display-pixel-height) 200)
                             (frame-char-height)))))))

(set-frame-size-according-to-resolution)

请注意,在较新版本的emacs中不推荐使用window-system.合适的替代品是(display-graphic-p).见这个答案的问题如何检测Emacs是在终端模式?多一点背景.


使用此方法有一个小的工件(以及此处列出的其他工具).Emacs将以一定的大小打开,并且在一秒钟之后将调整为我们设置的w/e大小.但过渡是可见的.有没有办法告诉emacs从t = 0秒以所需的大小绘制自己?

2> Chris Conway..:

我有以下内容.emacs:

(if (window-system)
  (set-frame-height (selected-frame) 60))

你也可以看看的功能set-frame-size,set-frame-positionset-frame-width.使用C-h f(又名M-x describe-function)来提供详细的文档.

我不确定是否有办法计算当前窗口环境中帧的最大高度/宽度.


好极了!`(if(window-system)(set-frame-size(selected-frame)124 40))`for win - 如此美观和简洁,让我得到我的终端默认的大小,这很好,很熟悉.:)(当然,根据喜好调整.)谢谢!

3> 小智..:

摘自:http://www.gnu.org/software/emacs/windows/old/faq4.html

(setq default-frame-alist
      '((top . 200) (left . 400)
        (width . 80) (height . 40)
        (cursor-color . "white")
        (cursor-type . box)
        (foreground-color . "yellow")
        (background-color . "black")
        (font . "-*-Courier-normal-r-*-*-13-*-*-*-c-*-iso8859-1")))

(setq initial-frame-alist '((top . 10) (left . 30)))

第一个设置适用于所有emacs帧,包括您启动时弹出的第一个.第二个设置将附加属性添加到第一帧.这是因为有时很高兴知道你启动emacs的原始帧.



4> JB...:

我发现在X-Window环境中这样做的最简单方法是通过X资源.我的.Xdefaults的相关部分如下所示:

Emacs.geometry: 80x70

您应该能够使用+ 0 + 0位置坐标对其进行后缀,以强制它显示在显示屏的左上角.(我不这样做的原因是我偶尔会产生新的帧,如果它们出现在与前一帧完全相同的位置,会让人感到困惑)

根据手册,此技术也适用于MS Windows,将资源作为键/值对存储在注册表中.我从来没有测试过.它可能很棒,与简单编辑文件相比,它可能更不方便.



5> 小智..:

尝试添加以下代码 .emacs

(add-to-list 'default-frame-alist '(height . 24))

(add-to-list 'default-frame-alist '(width . 80)) 



6> Graeme Perro..:

您还可以在启动emacs时使用-geometry参数:emacs -geometry 80x60+20+30将为您提供一个宽80行,高60行的窗口,左上角为右侧20像素,距离背景左上角30像素.



7> ftravers..:

在ubuntu上:

(defun toggle-fullscreen ()
  (interactive)
  (x-send-client-message nil 0 nil "_NET_WM_STATE" 32
                 '(2 "_NET_WM_STATE_MAXIMIZED_VERT" 0))
  (x-send-client-message nil 0 nil "_NET_WM_STATE" 32
                 '(2 "_NET_WM_STATE_MAXIMIZED_HORZ" 0))
)
(toggle-fullscreen)



8> Jérôme Radix..:

在Windows上,您可以使用此功能使emacs框架最大化:

(defun w32-maximize-frame ()
  "Maximize the current frame"
  (interactive)
  (w32-send-sys-command 61488))

推荐阅读
牛尾巴2010
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有