我正在寻找一些帮助,请收集有关特定窗口的一些信息而不必选择它,然后在符合指定条件的情况下删除该窗口。
以下代码片段仅在选择了目标窗口时才有效,但是,无论窗口有焦点,我都希望该函数能够运行。
(defconst lawlist-calendar-buffer "*Calendar*"
"Name of the buffer used for the lawlist-calendar.")
(if
(and
(get-buffer-window lawlist-calendar-buffer (selected-frame))
(with-current-buffer (get-buffer lawlist-calendar-buffer)
(eq (window-height) 12)))
(delete-window (get-buffer-window lawlist-calendar-buffer (selected-frame))))
答案 0 :(得分:1)
尝试以下代码
(let ((target-window (get-buffer-window "*Calendar*")))
(when (and target-window
(eq (window-height target-window) 12))
(delete-window target-window)))
如果缓冲区在当前帧中不可见,则函数get-buffer-window
将返回nil。函数window-height
传递给现有窗口,它返回窗口的高度。上面的代码结合了这两个函数来删除缓冲区*Calendar*
打开的窗口,如果窗口的高度等于12。