2

我的代码中有以下代码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。当我退出时,窗户保持打开状态。如何让窗口自动关闭?

4

1 回答 1

4

以下答案假定用户exit在缓冲区中的命令提示符下键入,*Eshell*然后是回车/回车键,并且答案假定该函数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)
于 2018-08-16T00:04:18.720 回答