【问题标题】:How to automatically kill buffer on terminal process exit in Emacs如何在 Emacs 中的终端进程退出时自动终止缓冲区
【发布时间】:2012-09-27 15:23:10
【问题描述】:

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

【问题讨论】:

    标签: emacs process exit kill


    【解决方案1】:

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

    (defadvice term-handle-exit
      (after term-kill-buffer-on-exit activate)
    (kill-buffer))
    

    【讨论】:

      【解决方案2】:

      我发现我可以为此使用进程哨兵并使用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))))))))
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-07-18
        • 2013-03-07
        • 2020-09-28
        • 2015-02-27
        相关资源
        最近更新 更多