我正在寻找设置 slime+lein-swank 以在我保存文件时重新加载从 repl 引用的源文件。目前我这样做:
- 编辑文件
- 保存存档
- 切换到repl
- (使用 :reload-all 'com.package.namespace)
- 测试的东西
我不想记住执行第 4 步。
C-c C-k您可以在切换到 REPL 之前使用 SLIME ,对于slime-compile-and-load-file
. 如果您还没有保存文件,它会提示您保存文件。完成后,您重新定义的内容应该可以在 SLIME REPL 的新版本中使用。然后你可以用来C-c C-z调出 REPL(C-x 0当你不再需要它时关闭它)。
在 .emacs 中设置一个钩子:
(defun clojure-slime-maybe-compile-and-load-file ()
"Call function `slime-compile-and-load-file' if current buffer is connected to a swank server.
Meant to be used in `after-save-hook'."
(when (and (eq major-mode 'clojure-mode) (slime-connected-p))
(slime-compile-and-load-file)))
(add-hook 'after-save-hook 'clojure-slime-maybe-compile-and-load-file)
像前面的答案一样,我使用相同的击键,但将它们记录到宏中并将其绑定到键。这样一来,只需按一下键即可保存、编译和切换到 REPL。它最终看起来像这样:
(fset 'compile-and-goto-repl
"\C-x\C-s\C-c\C-k\C-c\C-z")
(global-set-key [f6] 'compile-and-goto-repl)