差不多是的。实际检测的是 Emacs 的宽度(即水平方向能显示的英文字符的数量)和高度(即垂直方向……),究竟是左右还是上下分屏取决于它们与 split-height-thresholdd 和 split-width-threshold 的关系(Emacs manual 中有解释),大概是这个关系:
(cond ((> emacs-height split-height-threshold) (上下分屏)) ; 一般总是不满足
((> emacs-width split-width-threshold) (左右分屏)) ; 你的左右分屏时的情况
(t (上下分屏))) ; 你的上下分屏时的情况
比如我的 13 英寸笔记本下最大化 Emacs 应用程序时的参数如下:
(list split-height-threshold split-width-threshold)
⇒ (80 160)
(list (window-height) (window-width))
⇒ (48 177)
可以发现此时 Emacs 宽度足够(177 > 160)所以会左右分屏。此时要是我把 Emacs 宽度缩小一点(比如宽度至 159),就会变成上下分屏了。
C-x 4 b 等命令的分屏规律也一样。
方法之一是把 split-width-threshold 调小些,如果可以的话,再把 Emacs 拉扁些。
本来也可以像下面那样设置 display-buffer-alist 选项来无视宽度高度、总是左右分屏的,但是由于 org-mode shadow 了这个选项,所以不好用了。
(add-to-list 'display-buffer-alist
`(,(rx (or "*Org Agenda*" "* Agenda Commands*"))
(display-buffer-in-side-window)
(side . right)))