我正在尝试检测我正在启动emacs的屏幕大小,并相应地调整它开始的窗口的大小和位置(我猜这是emacs中的框架).我正在尝试设置我的.emacs,以便我总是得到一个"相当大"的窗口,它的左上角靠近屏幕的左上角.
我想这对于一般情况来说是一个很大的问题,所以为了缩小范围,我对Windows和(Debian)Linux上的GNU Emacs 22最感兴趣.
Bry*_*ley 87
如果要根据分辨率更改大小,可以执行以下操作(根据您的特定需要调整首选宽度和分辨率):
(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)
Run Code Online (Sandbox Code Playgroud)
请注意,在较新版本的emacs中不推荐使用window-system.合适的替代品是(display-graphic-p).见这个答案的问题如何检测Emacs是在终端模式?多一点背景.
Chr*_*way 48
我有以下内容.emacs:
(if (window-system)
(set-frame-height (selected-frame) 60))
Run Code Online (Sandbox Code Playgroud)
你也可以看看的功能set-frame-size,set-frame-position和set-frame-width.使用C-h f(又名M-x describe-function)来提供详细的文档.
我不确定是否有办法计算当前窗口环境中帧的最大高度/宽度.
小智 21
摘自: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)))
Run Code Online (Sandbox Code Playgroud)
第一个设置适用于所有emacs帧,包括您启动时弹出的第一个.第二个设置将附加属性添加到第一帧.这是因为有时很高兴知道你启动emacs的原始帧.
JB.*_*JB. 17
我发现在X-Window环境中这样做的最简单方法是通过X资源.我的.Xdefaults的相关部分如下所示:
Emacs.geometry: 80x70
Run Code Online (Sandbox Code Playgroud)
您应该能够使用+ 0 + 0位置坐标对其进行后缀,以强制它显示在显示屏的左上角.(我不这样做的原因是我偶尔会产生新的帧,如果它们出现在与前一帧完全相同的位置,会让人感到困惑)
根据手册,此技术也适用于MS Windows,将资源作为键/值对存储在注册表中.我从来没有测试过.它可能很棒,与简单编辑文件相比,它可能更不方便.
小智 16
尝试添加以下代码 .emacs
(add-to-list 'default-frame-alist '(height . 24))
(add-to-list 'default-frame-alist '(width . 80))
Run Code Online (Sandbox Code Playgroud)
Gra*_*row 12
您还可以在启动emacs时使用-geometry参数:emacs -geometry 80x60+20+30将为您提供一个宽80行,高60行的窗口,左上角为右侧20像素,距离背景左上角30像素.
在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)
Run Code Online (Sandbox Code Playgroud)
在Windows上,您可以使用此功能使emacs框架最大化:
(defun w32-maximize-frame ()
"Maximize the current frame"
(interactive)
(w32-send-sys-command 61488))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
57189 次 |
| 最近记录: |