我正在尝试基于 EMACS+CIDER 设置我的环境以进行 clojure 开发,顺便说一句,我在 6:20-6:25 的时间在此视频中看到了热重载功能。http://www.parens-of-the-dead.com/e1.html
实际上,作者并没有使用 RING/wrap-reload 之类的功能,而是在每个缓冲区保存到 emacs 后,他的代码在 REPL 中重新加载。我想我在本地机器上有相同的库(苹果酒、苹果酒-nrepl、clj-refactor、clojure-mode),但是我的本地安装没有如图所示工作,它需要每次在 REPL 中调用(重置)函数。
PS我可以通过EMACS中的这段代码大致获得相同的行为,但我不想使用这样的黑客:
(defun my-clojure-reset ()
"Reload clojure once file were saved."
(when
(s-ends-with? "clj" (buffer-file-name))
(cider-interactive-eval "(do (ns user) (reset))")))
(add-hook 'after-save-hook 'my-clojure-reset)
任何建议如何在 EMACS+CIDER 中对文件保存事件实现代码重新加载?