2012-09-09 35 views
11

使用leiningen REPL時,是否有一種方法可以使文件或ns自動重新加載到文件保存中。目前我通過在repl - (use 'sample.ns :reload-all)中輸入以下內容來重新加載ns。如何熱重新加載文件保存在Leiningen的命名空間REPL

但是,我可以讓它自動重新加載文件保存?

+3

您使用的是emacs嗎?因爲如果是這樣,這是一個支持功能的粘液/ swank:http://stackoverflow.com/questions/2596222/how-to-reload-files-upon-save-when-using-swankleiningenemacs – noahlz

回答

0

Clojure-Watch庫做你所需要的。它觀察一個文件並執行一些操作。在你的情況下,一個動作是從該文件重新加載一個命名空間。另外,它需要編寫一些初始代碼來啓動觀察者。

這種方式對我來說似乎有點複雜。直接從Lein推出的Plain REPL並不是有效的開發方式。你最好使用像Emacs或Lightable這樣的Clojure友好的編輯器。

0

大多數主要編輯器都支持自定義熱鍵綁定,並且有一個Clojure插件,允許您通過網絡連接到活動的REPL(通過「nREPL」)。就我個人而言,我使用vim,因此爲此使用vim-fireplace

這意味着您可以擁有一個自定義熱鍵,用於在編輯時重新加載正在編輯的任何文件。從那裏,添加一個自定義的保存鉤子來重新加載通常是微不足道的。