每次开始工作时,我都会启动 Emacs,按 M-x cd 到工作目录,按 M-x slime 启动 Slime,然后在 slime repl 中运行 (ql:quickload 'myproject),(或 load-system myproject)接着 , +p myproject 切换repl中的当前包。 最后,我在 repl 中运行 call a (start-server) 以启动我的 Web 服务器。
我希望这一切只是一次 Emacs 击键或命令。很尴尬,我不得不问这个,因为它都是 lisp,但我在这里不太清楚 Emacs 和 Slime 之间的相互作用。然而,作为一名程序员,我觉得我应该将所有繁琐的流程自动化 - 并且我预见到要为此添加更多步骤。
我想棘手的部分是发送 slime 命令,然后等待 quicklisp 完成后再发送下一个命令。
如有任何指点,我们将不胜感激!
编辑:感谢 Svante 的 C-c ~ 提示,这对我来说是个新闻
最佳答案
在 Emacs 方面,您可以将键绑定(bind)到命令,而不是使用附加参数调用 slime
:
(defun my-lisp ()
(interactive)
(slime (concat "sbcl --load " <path-to-your-lisp-script>)))
例如,在您的 Lisp 脚本中:
(ql:quickload :my-system)
(in-package :my-package)
(start-server)
关于Emacs 和 Slime 启动脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50141371/