我不是在寻找IDE或集成REPL。我只想问,是否有人知道REPL中是否可能有一个缓冲区编辑器,就像从'psql‘或者一些*nix shell中知道的那样。
例如,在psql中,您只需输入"\e“,就可以在编辑器中得到最后一个命令并执行uppon。
这对clojure repl来说太棒了。
$ 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一起使用,我必须更改以下内容:
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"
发布于 2012-01-11 23:22:46
rl包装机
有许多方法可以实现您想要的结果,但是覆膜二进制文件可以满足您的需要。过去,我在Mac上也遇到过一些jline版本问题,所以我不再使用它了。
当我在我的终端中键入'clj‘时,它实际上是通过/usr/local/bin/clj中的bash脚本执行用REPL包装的REPL
#!/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
发布于 2012-01-11 23:36:50
请看我对一个REPL把他们都绑起来?和如何在Ubuntu10.04上安装没有clojure.jar的Github问题的回答。要点:
rlwrap或其他读行程序。https://stackoverflow.com/questions/8827798
复制相似问题