首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有缓冲编辑器的Clojure标准REPL?

是否有缓冲编辑器的Clojure标准REPL?
EN

Stack Overflow用户
提问于 2012-01-11 22:41:54
回答 2查看 1.3K关注 0票数 6

我不是在寻找IDE或集成REPL。我只想问,是否有人知道REPL中是否可能有一个缓冲区编辑器,就像从'psql‘或者一些*nix shell中知道的那样。

例如,在psql中,您只需输入"\e“,就可以在编辑器中得到最后一个命令并执行uppon。

这对clojure repl来说太棒了。

代码语言:javascript
复制
$ java -cp jline.jar:clojure-1.3.0.jar jline.ConsoleRunner clojure.main

那么,有这样的功能吗?在jline中,它必须在哪里实现?

解决方案:

包裹就行了。

我必须编译读行ftp://ftp.gnu.org/gnu/readline/,然后再编译http://utopia.knoware.nl/~hlub/rlwrap/#rlwrap

之后,我可以使用以下快捷方式启动编辑器。

Ctrl + ^

rlwrap -m -- java -cp clojure-1.3.0.jar clojure.main

为了在Mac上与leiningen一起使用,我必须更改以下内容:

代码语言:javascript
复制
lein 1.6.2
*** 226,233 ****
              rlwrap -m -q '"' echo "hi" > /dev/null 2>&1
              if [ $? -eq 0 ]; then
                  RLWRAP="$RLWRAP -r -m -q '\"'"
-             else
-                 RLWRAP="$RLWRAP -m --"
              fi
          fi
      fi
--- 226,231 ----

和出口RLWRAP_EDITOR

export RLWRAP_EDITOR="vim +%L"

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-01-11 23:22:46

rl包装机

有许多方法可以实现您想要的结果,但是覆膜二进制文件可以满足您的需要。过去,我在Mac上也遇到过一些jline版本问题,所以我不再使用它了。

当我在我的终端中键入'clj‘时,它实际上是通过/usr/local/bin/clj中的bash脚本执行用REPL包装的REPL

代码语言:javascript
复制
#!/bin/sh
# Runs clojure.
# With no arguments, runs Clojure's REPL.

CLOJURE=$CLASSPATH:/usr/local/clojure/1.3.0/clojure-1.3.0.jar

rlwrap java -cp $CLOJURE clojure.main "$@"

将脚本放置在您的路径中的任何位置,以便使用。

最后,您不需要脚本,我只是作为一个方便。如果您的系统上有rlwrap,并且clj在您的路径中,那么您可以简单地键入:

rlwrap clj

进一步阅读Clojure wiki的书籍:用rlwrap增强Clojure REPL

票数 8
EN

Stack Overflow用户

发布于 2012-01-11 23:36:50

请看我对一个REPL把他们都绑起来?如何在Ubuntu10.04上安装没有clojure.jar的Github问题的回答。要点:

  • 根本不要“安装”clojure。安装Leiningen,并让它管理您拥有的clojure版本,以及为repl或其他用法提供正确的类路径。
  • 如果必须手动启动clojure,请使用rlwrap或其他读行程序。
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8827798

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档