Answers:
如果要根据分辨率更改大小,可以执行以下操作(根据您的特定需求调整首选的宽度和分辨率):
(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
:
(if (window-system)
(set-frame-height (selected-frame) 60))
你也可以看看的功能set-frame-size
,set-frame-position
和set-frame-width
。使用C-h f
(aka M-x describe-function
)调出详细的文档。
我不确定在当前窗口环境中是否可以计算框架的最大高度/宽度。
(if (window-system) (set-frame-size (selected-frame) 124 40))
为了赢得胜利-简洁明了,让我的终端机默认大小非常友好。:)(当然,可以根据喜好进行调整。)谢谢!
init.el
其放入其中,则仅适用于初始框架。如果之后创建新框架,则上述功能将无效。新框架将在中进行设置default-frame-alist
。
(set-frame-size (selected-frame) 80 24)
给了我一个161 x 48的帧;我在4K hidpi屏幕上,但是我不希望这会影响字符数。
摘自: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的原始框架。
(width . 80) (height . 40)
),但是由于某种原因,在我将Xubuntu版本从12.04升级到13.10后,该方法停止了工作:启动时,框架大小为默认大小。然后,我转而使用克里斯·康威(Chris Conway)的答案,该答案对我有用。
我发现在X-Window环境中执行此操作的最简单方法是通过X resources。我的.Xdefaults的相关部分如下所示:
Emacs.geometry: 80x70
您应该可以使用+ 0 + 0位置坐标作为后缀,以将其强制显示在显示器的左上角。(我之所以不这样做,是因为我偶尔会产生新的帧,如果它们出现在与前一帧完全相同的位置,则会使事情感到困惑)
根据手册,该技术也适用于MS Windows,将资源作为键/值对存储在注册表中。我从来没有测试过。与仅编辑文件相比,这可能很棒,而且可能带来更多的不便。
在Windows上,您可以使用以下功能使emacs框架最大化:
(defun w32-maximize-frame ()
"Maximize the current frame"
(interactive)
(w32-send-sys-command 61488))
(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)
我喜欢Bryan Oakley的设置。但是,“高度”在我的GNU Emacs 24.1.1中无法正常工作。