Emacs 和 Slime 启动脚本

标签 emacs common-lisp slime

每次开始工作时,我都会启动 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/

相关文章:

command-line - 编写从命令行执行但不在解释器内部执行的Common Lisp代码

emacs - 如何中止 Clojure Box (Emacs) 中的评估?

emacs - 构建 emacs 24.1.50

lisp - 获取列表中 elt 的 cdr

lisp - 普通 lisp 中的 require 和 load 有什么区别?

lisp - 试图理解 setf + aref "magic"

emacs - 在 Lisp 模式下隐藏 `(declare)` 表单

emacs - 如何在 Emacs Lisp 函数中等待事件?

emacs - 无需鼠标的 Flyspell

emacs - emacs 的颜色主题库?