有胆有识的小狗 · 斗罗2主角建模曝光,新七怪造型失败,柔骨兔没 ...· 11 月前 · |
强悍的毛衣 · 洪荒对战淘汰对手 ...· 1 年前 · |
有胆有识的沙滩裤 · 鹿角 - 720P|1080P高清下载 - ...· 1 年前 · |
坚强的打火机 · 高远垒老师访谈(三):漫画家出道和格斗技的黄 ...· 1 年前 · |
我正在尝试检测正在启动emacs的屏幕的大小,并相应地调整窗口的大小和位置(我猜这就是emacs中的帧)。我正在尝试设置我的.emacs,以便我总是得到一个“相当大”的窗口,它的左上角靠近屏幕的左上角。
我想这是一个很大的要求,所以为了缩小范围,我最感兴趣的是Windows和(Debian) Linux上的GNU Emacs 22。
(setq initial-frame-alist
(append '((width . 263) (height . 112) (top . -5) (left . 5) (font . "4.System VIO"))
initial-frame-alist))
(setq default-frame-alist
(append '((width . 263) (height . 112) (top . -5) (left . 5) (font . "4.System VIO"))
default-frame-alist))
摘自: 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的原始框架是很好的。
我在X-Window环境中找到的最简单的方法是通过 X resources 。我的.Xdefaults的相关部分如下所示:
Emacs.geometry: 80x70
您应该能够为其添加+0+0位置坐标后缀,以使其位于显示器的左上角。(我不这样做的原因是我偶尔会产生新的帧,如果它们出现在与前一个帧完全相同的位置,这会让事情变得混乱)
根据手册 this technique works on MS Windows too ,在注册表中以键/值对的形式存储资源。我从来没有测试过。这可能很棒,但与简单地编辑文件相比,它可能会带来更多的麻烦。
我的
.emacs
中有以下内容
(if (window-system)
(set-frame-height (selected-frame) 60))
您还可以查看函数
set-frame-size
、
set-frame-position
和
set-frame-width
。使用
C-h f
(又称
M-x describe-function
)调出详细的文档。
我不确定在当前的窗口环境中是否有办法计算框架的最大高度/宽度。
如果你想根据分辨率改变大小,你可以这样做(根据你的特定需求调整首选的宽度和分辨率):
(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)
。有关更多背景信息,请参阅
this answer
to the question
How to detect that emacs is in terminal-mode?
。
您还可以在启动
emacs -geometry 80x60+20+30
时使用-geometry参数:emacs将给出一个宽80个字符、高60行的窗口,窗口左上角向右20个像素,从背景的左上角向下30个像素。
在windows上,您可以使用以下函数最大化emacs框架:
(defun w32-maximize-frame ()
"Maximize the current frame"
(interactive)
(w32-send-sys-command 61488))