如何在Emacs中自动终止终端进程出口上的缓冲区

jcu*_*bic 5 emacs kill process exit

与之关联的进程结束后,如何自动终止终端缓冲区。

Łuk*_*ner 6

我找到了更简单的方法,定义了一个建议 term-handle-exit

(defadvice term-handle-exit
  (after term-kill-buffer-on-exit activate)
(kill-buffer))
Run Code Online (Sandbox Code Playgroud)


jcu*_*bic 1

我发现我可以使用进程哨兵并使用term-exec-hook

(add-hook 'term-exec-hook (lambda ()
            (let* ((buff (current-buffer))
                 (proc (get-buffer-process buff)))
            (lexical-let ((buff buff))
               (set-process-sentinel proc (lambda (process event)
                            (if (string= event "finished\n")
                                       (kill-buffer buff))))))))
Run Code Online (Sandbox Code Playgroud)