22

我正在寻找设置 slime+lein-swank 以在我保存文件时重新加载从 repl 引用的源文件。目前我这样做:

  • 编辑文件
  • 保存存档
  • 切换到repl
  • (使用 :reload-all 'com.package.namespace)
  • 测试的东西

我不想记住执行第 4 步。

4

3 回答 3

16

C-c C-k您可以在切换到 REPL 之前使用 SLIME ,对于slime-compile-and-load-file. 如果您还没有保存文件,它会提示您保存文件。完成后,您重新定义的内容应该可以在 SLIME REPL 的新版本中使用。然后你可以用来C-c C-z调出 REPL(C-x 0当你不再需要它时关闭它)。

于 2010-04-08T00:48:43.850 回答
13

在 .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)
于 2010-04-08T12:15:55.413 回答
8

像前面的答案一样,我使用相同的击键,但将它们记录到宏中并将其绑定到键。这样一来,只需按一下键即可保存、编译和切换到 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)
于 2010-04-08T03:26:58.227 回答