Cider:如何在启动时 运行 命令?

Cider: how to run a comand on startup?

我有一个使用 bootreloaded.repl 的网络应用程序项目。
它具有以下配置:

(require
<...>
 '[reloaded.repl :refer [init start stop go reset]]
<...>)

我以 boot dev 启动它,并对实例执行 (cider-connect <...>) - 一段时间后 *cider-repl <stuff>* 缓冲区出现。

我想要 运行 并且总是 运行 的第一个命令是 Repl 中的 (go) 以便开发服务器准备就绪。我如何配置 Cider 在连接准备就绪时调用命令?

我在文档中找不到任何内容并搜索“苹果酒启动”、“苹果酒 运行 repl 就绪时的命令”等

我不太确定如何在 REPL 准备就绪时 运行 命令,但是是否可以接受键绑定,例如Ctrl + F12,在 Emacs 中用于 运行ning 命令?如果这是一个可接受的解决方案,您可以在 ~/.emacs.d/init.el 文件中包含以下代码:

(defun initialize-reloaded ()
  (interactive)
  (cider-interactive-eval
   "(do (require '[reloaded.repl :refer [init start stop go reset]])
        (go))"))

(add-hook 'cider-mode-hook 
          (lambda ()
            (define-key clojure-mode-map (kbd "<C-f12>") 'initialize-reloaded)))

在上面的代码中,我包含了需要 reloaded 的代码,但如果源文件已经需要该代码,您可以省略它。

然后你所要做的就是按Ctrl + F12启动服务器。

结合Rulle回答的思路,这个可行:


(add-hook 'cider-connected-hook (lambda ()
                                  (cider-interactive-eval "(go)")))

当在 scratch 缓冲区中计算时,(cider-interactive-eval "(go)") 无益地出错并显示“无链接会话”,但是当放入钩子时,它会起作用。