2

如何(或尝试)将 Emacs 窗口的窗口大小(而不是框架大小)设置为特定值?我知道 Emacs 的适合内容的功能,但没有一个允许我设置精确的高度。我知道只有在我正在调整的维度上存在其他窗口时才能执行此操作。我需要它来自动调整我的编译缓冲区中的高度(当然要达到某个阈值,当然说 2/3 frame-height())以适应编译器/解释器输出的消息行数。

到目前为止我有

  (balance-windows (get-buffer-window compilation-buffer))
  (fit-window-to-buffer (get-buffer-window compilation-buffer)
                        (/ (frame-height) 2))

但是由于某种原因,当编译窗口很小时,第一条语句不起作用。也就是说,当编译窗口太大时,代码可以正常工作,而当编译窗口太小时,代码就不能正常工作。

4

1 回答 1

3
  1. Get the current height of the window you want to change.
  2. Calculate the change needed from that current height: the delta.
  3. Pass the delta to enlarge-window.

E.g.,

(let* ((curr-ht  (window-height window))
       (delta    (- DESIRED-HEIGHT curr-ht)))
  (save-excursion
    (save-selected-window (select-window window)
                          (enlarge-window delta))))      
于 2013-08-25T19:43:01.217 回答