ファイルを保存するときに repl から参照されるソース ファイルをリロードするように、slime+lein-swank を設定しようとしています。現在、私はこれを行います:
- ファイルを編集
- ファイルを保存
- 交換に切り替える
- (:reload-all 'com.package.namespace を使用)
- テストのもの
ステップ4を忘れずにやりたいです。
C-c C-kREPL に切り替える前に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)
前の回答と同様に、同じキーストロークを使用しますが、それらをマクロに記録してキーにバインドします。そうすれば、キーを 1 回押すだけで、保存、コンパイル、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)