2024 Clojure状态调查!分享您的想法。

欢迎!请查看关于页面以了解更多关于如何使用本站点的工作原理。

+1
REPL
重标记

在按下回车键将表达式提交给REPL之后,该行的提示符开始消失

before

after

在上面的例子中,在按下Return之后,Clojure版本号之后的每一行应该仍然显示

user=> 123

但事实上只显示

123

即提示符消失了。

1 答案

+4

编辑
 
最佳答案

这是因为clj命令在内部使用rlwrap命令来提供传统的REPL键盘快捷方式。

rlwrap转而使用readline库,而该库的最新版本(8.1)在rlwrap中暴露了漏洞,导致提示符消失

https://github.com/hanslub42/rlwrap/issues/108

在可以获得修复了rlwrap命令的版本之前,可以通过在您的家目录中的.inputrc文件中添加以下内容来替换这个漏洞(即~/.inputrc - 如果它不存在,请创建它)

$if clojure
    set enable-bracketed-paste off
$endif

如果退出并重新启动clj命令不足以使新配置生效,请尝试也重新启动您的终端。


更新: rlwrap 版本 0.44 已发布,因此上述的解决方案不再需要。有关 rlwrap 在不同软件包仓库中可用版本的信息,请见下文。[查看这里](https://repology.org/project/rlwrap/versions)。

谢谢!这曾经让我头疼不已!
...