我很少使用REPL,并且每次连接到swank实例时弹出它让我感到很烦。如何防止SLIME切换到repl缓冲区?
我试图在slime的代码中找到它的位置,但是如果不确定要查找什么,代码就会变得非常庞大。
谢谢
我很少使用REPL,并且每次连接到swank实例时弹出它让我感到很烦。如何防止SLIME切换到repl缓冲区?
我试图在slime的代码中找到它的位置,但是如果不确定要查找什么,代码就会变得非常庞大。
谢谢
以下是我在 lispy 中的做法:
(defun lispy--eval-lisp (str)
"Eval STR as Common Lisp code."
(require 'slime-repl)
(unless (slime-current-connection)
(let ((wnd (current-window-configuration)))
(slime)
(while (not (and (slime-current-connection)
(get-buffer-window (slime-output-buffer))))
(sit-for 0.2))
(set-window-configuration wnd)))
(let (deactivate-mark)
(cadr (slime-eval `(swank:eval-and-grab-output ,str)))))
这是我的解决方案,感谢@abo-abo的答案。
(defun my-slime-connect () (interactive)
(let ((wnd (current-window-configuration)))
(call-interactively 'slime-connect)
(sit-for 0.2) ;; Not sure if necessary, haven't tested without it.
(set-window-configuration wnd)))
sit-for
只是因为在 slime 完全初始化之前我无法进行 eval 操作,这需要一些时间。 - abo-abo