0

我需要以编程方式调整窗口大小,所以我不知道如何:

在当前帧的所有窗口中找到一个运行指定模式的窗口,例如“dired”。

比方说,我有:

|-------+------------+-----|
| Dired | Emacs-lisp | Org |
|       | -x-        |     |
|       |            |     |
|-------+------------+-----|

(点在第二个窗口)现在我需要以编程方式找到具有 Dired 模式的窗口(注意它可以在任何位置)并调整它的宽度。

要调整宽度,我知道我可以使用类似的东西:

(defun fit-w ()
  (let ((fit-window-to-buffer-horizontally t))
(fit-window-to-buffer)))

但首先我需要检测窗口

4

1 回答 1

1

这也可以以更具声明性/功能性的方式完成。如果未找到,则使用dired-modeor返回当前窗口缓冲区的第一个窗口:nil

(cl-find-if
 (lambda (window)
   (with-current-buffer (window-buffer window) (eq major-mode 'dired-mode)))
 (window-list))
于 2016-06-05T11:16:17.810 回答