Подтвердить что ты не робот

Как перезагрузить файлы при сохранении при использовании swank + leiningen + emacs

Я хочу настроить slime + lein-swank для перезагрузки исходных файлов, на которые ссылается реплика при сохранении файла. в настоящее время я делаю это:

  • изменить файл
  • сохранить файл
  • переключиться на repl
  • (используйте: reload-all 'com.package.namespace)
  • тестовый материал

Я не хочу забывать делать шаг 4.

4b9b3361

Ответ 1

Вы можете использовать SLIME C-c C-k перед переключением на REPL, для slime-compile-and-load-file. Он попросит вас сохранить файл, если вы еще этого не сделали. Когда это будет сделано, вещи, которые вы переопределили, должны быть доступны в SLIME REPL в их новых версиях. Затем вы можете использовать C-c C-z для вызова REPL (закройте его C-x 0, когда вам это больше не понадобится).

Ответ 2

Установите крючок в .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)

Ответ 3

Как и в предыдущем ответе, я использую те же нажатия клавиш, но записываю их в макрос и привязываю его к ключу. Таким образом, это всего лишь одно нажатие клавиши для сохранения, компиляции и переключения на 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)