Cider:如何在启动时 运行 命令?
Cider: how to run a comand on startup?
我有一个使用 boot
和 reloaded.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)")
无益地出错并显示“无链接会话”,但是当放入钩子时,它会起作用。
我有一个使用 boot
和 reloaded.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)")
无益地出错并显示“无链接会话”,但是当放入钩子时,它会起作用。