「问题」怎么可以做到执行 C-x 1 时不关闭 imenu-list buffer

怎么可以做到执行 C-x 1 时不关闭 imenu-list buffer

你可能需要这个

https://archive.casouri.cc/note/2020/atomic-buffer/

自己写了一个可用的

(require 'dash)

(defun delete-other-windows-exclude-imenu-list  ()
  (interactive)
(->> (window-list)
    (-filter
    (lambda (win)
            (and
                (not (equal "*Ilist*" (buffer-name (window-buffer win))))
                (not (eq  (selected-window)  win))

                )
                )
     )
    (-map
     (lambda (bekill-win)
       (delete-window bekill-win)
     )
     )
    )
  )

(global-set-key (kbd "C-x 1") 'delete-other-windows-exclude-imenu-list)


参考A smarter alternative to delete-window?

1 个赞

把imenu-list 的window属性改为(dedicated . t)是不是可以保留不关?

更新:试了一下,(dedicated . t) 无法保留。

修改 display-buffer-alist 里 imenu-list buffer 相关的 window-parameters

(add-to-list 'display-buffer-alist
             '("\\*Ilist\\*"
               (imenu-list-display-buffer)
               (window-parameters . ((no-delete-other-windows . t)))))
2 个赞