我需要以编程方式调整窗口大小,所以我不知道如何:
当前帧中的所有窗口中找到一个正在运行指定模式的窗口,例如“dired”。
让我们说,我有:
|-------+------------+-----|
| Dired | Emacs-lisp | Org |
| | -x- | |
| | | |
|-------+------------+-----|
(点在第二个窗口)现在我需要以编程方式找到具有Dired模式的窗口(注意它可以在任何位置)并调整其宽度。
为了调整宽度,我知道我可以使用类似的东西:
(defun fit-w ()
(let ((fit-window-to-buffer-horizontally t))
(fit-window-to-buffer)))
但首先我需要检测窗口
答案 0 :(得分:1)
这也可以以更具声明性/功能性的方式完成。如果找不到,则使用dired-mode
或nil
返回当前窗口缓冲区的第一个窗口:
(cl-find-if
(lambda (window)
(with-current-buffer (window-buffer window) (eq major-mode 'dired-mode)))
(window-list))