【问题标题】:How to Reload files upon save when using swank+leiningen+emacs使用 swank+leiningen+emacs 时如何在保存时重新加载文件
【发布时间】:2011-02-05 11:25:40
【问题描述】:

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

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

我不想记住执行第 4 步。

【问题讨论】:

    标签: emacs clojure slime leiningen


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      与上一个答案一样,我使用相同的击键,但将它们记录到宏中并将其绑定到键。这样一来,只需按一下键即可保存、编译和切换到 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)
      

      【讨论】:

        【解决方案3】:

        在 .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)
        

        【讨论】:

          猜你喜欢
          • 2015-01-21
          • 2011-12-13
          • 1970-01-01
          • 1970-01-01
          • 2011-01-16
          • 1970-01-01
          • 1970-01-01
          • 2020-06-14
          • 1970-01-01
          相关资源
          最近更新 更多