Emacs eshell - 退出时杀死 window

Emacs eshell - Kill window on exit

我的 init.el

中有以下代码
;;open eshell
(defun eshell-other-window ()
  (interactive)
  (let ((buf (eshell)))
    (switch-to-buffer (other-buffer buf))
    (switch-to-buffer-other-window buf)
  )
)
(global-set-key (kbd "C-t") 'eshell-other-window)

在我退出 eshell 之前一切正常。当我退出时,window 保持打开状态。如何让 window 自动关闭?

以下答案假定用户在 *Eshell* 缓冲区中的命令提示符下键入 exit,然后按 return/enter 键,并且答案假定函数 eshell/exit 正在做它的事情。 [用户仍然可以自由自定义变量 eshell-kill-on-exit 以在退出时埋没或杀死 *Eshell* 缓冲区。]

(require 'eshell)

(defun my-custom-func () 
  (when (not (one-window-p))
    (delete-window)))

(advice-add 'eshell-life-is-too-much :after 'my-custom-func)