可以在窗口中"滚动缓冲区的末尾".这很有用,因为当缓冲区没有填充用于显示它的窗口的整个区域时,Emacs必须以某种方式使用额外的空间.
然而,有时当整个缓冲区完全适合窗口时,顶部仍未显示,并且在缓冲区内容下面浪费了超过必要的空间以填充可用空间.如果窗口被自动滚动以显示完整的缓冲区或者它是否尽可能大于窗口,那会更好.
换句话说,窗口显示"缓冲区末端下方"的唯一时间是窗口大的时候.
有这样的模式或选项吗?
编辑:所以是这样的?
(add-hook 'post-command-hook 'my-eob-recenter)
(defun my-eob-recenter ()
(when (pos-visible-in-window-p (point-max))
(save-excursion
(goto-char (point-max))
(recenter -1))))
Run Code Online (Sandbox Code Playgroud)
原答案:
如果您有一个比其内容大的窗口,并且您想将其缩小以适应窗口的大小,则可以使用绑定。
C-x-运行shrink-window-if-larger-than-buffer
就我个人而言,我怀疑如果它自动发生的话会很烦人,但你可以尝试这样做:
(defadvice split-window (after my-split-window-shrink)
"Shrink the selected window after a window split
if it is larger than its contents."
(shrink-window-if-larger-than-buffer))
(ad-activate 'split-window)
Run Code Online (Sandbox Code Playgroud)