You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 07:15:21