当nrepl-jack-in被叫时,杀死以前的nrepl会话?

Ste*_*gle 7 emacs clojurescript

在这个时刻,我主要使用nrepl与Clojurescript应用程序交谈.我喜欢在emacs中使用nrepl.我打字开始nrepl M-x nrepl-jack-in.

不幸的是,我的nrepl会话经常被完全挂起.当发生这种情况时,我尽职尽责地杀死与nrepl相关的3个缓冲区.这些缓冲区是:

  1. *nrepl*
  2. *nrepl-connection*
  3. *nrepl-server*

*nrepl-server* 也有一个积极的过程,它问我是否要关闭它,我说是的.

然后我再次输入M-x nrepl-jack-in.

这是一种痛苦.

我想重载,nrepl-jack-in以便它自动检查是否存在这3个缓冲区中的任何一个.如果它们中的任何一个确实存在,它将终止这些缓冲区以及与这些缓冲区相关的任何活动进程.执行此操作后,重载nrepl-jack-in将继续照常进行.我想这样,因为那时,每当我发现nrepl已经决定再次挂起时,我就可以输入M-X nrepl-jack-in并重新启动我正在做的事情.

Boz*_*sov 4

这应该可以完成工作:

(defun my-nrepl-jack-in ()
  (interactive)
  (dolist (buffer (buffer-list))
    (when (string-prefix-p "*nrepl" (buffer-name buffer))
      (kill-buffer buffer)))
  (nrepl-jack-in nil))
Run Code Online (Sandbox Code Playgroud)