我不是在寻找IDE或集成REPL。我只想问一下是否有人知道是否可以在REPL中像“psql”或某些*nix shell中那样拥有缓冲区编辑器。例如,在psql中,您只需输入“\e”,即可在编辑器中获取上一个命令,并在退出时执行它。这对于Clojure REPL将是很棒的功能。
$ java -cp jline.jar:clojure-1.3.0.jar jline.ConsoleRunner clojure.main
那么,是否有这样的功能?它应该在哪里实现,在jline中吗?
解决方法:
使用rlwrap工具。
我需要编译readline ftp://ftp.gnu.org/gnu/readline/和rlwrap http://utopia.knoware.nl/~hlub/rlwrap/#rlwrap。
之后,我可以使用以下快捷方式启动编辑器。
Ctrl + ^
rlwrap -m -- java -cp clojure-1.3.0.jar clojure.main
对于在Mac OSX上使用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"