如何修改lein repl的提示符文本?适配应用控制台使用场景
如何修改Leiningen REPL的提示符
我刚好也折腾过这个!要把Leiningen REPL改成适合你应用控制台的自定义提示符,有两种实用方法,看你需要永久生效还是临时调整:
永久配置(项目级生效)
如果你希望每次启动lein repl都用自定义提示符,直接修改项目根目录的project.clj文件就行。找到或者添加:repl-options配置块,在里面指定:prompt选项——它接受一个无参函数,返回的字符串就是你的提示符。举个例子,设置成带应用名和当前命名空间的提示符:
(defproject my-app "0.1.0-SNAPSHOT" ;; 其他项目配置(依赖、插件等)... :repl-options {:prompt (fn [] (str "my-app [" *ns* "]> "))})保存后重启
lein repl,就能看到个性化的提示符了,非常适合用作专属应用控制台。临时调整(当前会话生效)
要是只是某次启动REPL想临时改提示符,不用改配置文件,直接在REPL里执行代码就行:;; 简单固定提示符 (set! *prompt* (fn [] "my-app> "))想更灵活的话,比如显示当前所在的命名空间,也可以这么写:
(set! *prompt* (fn [] (str "[" *ns* "]> ")))这个修改只在当前REPL会话有效,重启后就会回到默认设置,适合临时调试的时候用。
顺便说下原理:Leiningen REPL的提示符是基于Clojure内置的
*prompt*动态变量实现的,这个变量的值是一个无参函数,返回的字符串就是提示符内容。你甚至可以写更复杂的逻辑,比如加上环境标识(dev/prod)、当前时间之类的,完全按需定制。
内容的提问来源于stack exchange,提问作者Nick Tomlin
相关产品推荐
相关产品推荐

