在 Emacs dired 缓冲区中,如果我在文件名上导航并点击ofor dired-find-file-other-window, dired 会成功产生所需的行为:在辅助窗口中打开文件。
但是,如果我然后导航指向第二个文件名并再次点击o,则 dired再次拆分框架并在第三个窗口中打开文件。
如何指示直接重用第二个窗口,以便在一个框架中始终最多有两个窗口?
将 的值提高split-height-threshold到不会再进行拆分。
您可能还需要加注split-width-threshold- 以防 Emacs 认为以这种方式拆分比。
评论中的WRT问题:
选择 IMO 的值取决于窗口中显示的行数。假设显示了 40 行。如果一个窗口被拆分,则剩下 20 个。那么 15 的 `split-height-threshold' 应该可以防止进一步的分裂。防止进一步的并排拆分应该各自起作用,只需考虑显示的列。
顺便说一句,希望有一种动态适应的方法。
试图通过修改 的值来解决同样的问题split-width-threshold,但发现它经常在监视器配置更改时停止工作。最终为 写了一个建议window-splittable-p。
(setq split-width-threshold (- (window-width) 10))
(setq split-height-threshold nil)
(defun count-visible-buffers (&optional frame)
"Count how many buffers are currently being shown. Defaults to selected frame."
(length (mapcar #'window-buffer (window-list frame))))
(defun do-not-split-more-than-two-windows (window &optional horizontal)
(if (and horizontal (> (count-visible-buffers) 1))
nil
t))
(advice-add 'window-splittable-p :before-while #'do-not-split-more-than-two-windows)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1302 次 |
| 最近记录: |