我在Windows 7上使用Cygwin和最新的lein,但是当我在repl中时,上下按下让我绕着repl控制台而不是向我显示历史记录(这是我期望的)。我已经google了一下,看到这与使用jline而不是readline(无论这意味着什么)有关,但我不知道如何使用这些信息来解决我的问题。
答案 0 :(得分:5)
我修改了lein启动脚本以调用stty并设置jline.terminal,它似乎有效:
stty -icanon min 1 -echo
$LEIN_JAVA_CMD \
-client -XX:+TieredCompilation \
-Djline.terminal=jline.UnixTerminal \
$LEIN_JVM_OPTS \
-Dfile.encoding=UTF-8 \
-Dmaven.wagon.http.ssl.easy=false \
-Dleiningen.original.pwd="$ORIGINAL_PWD" \
-Dleiningen.trampoline-file="$TRAMPOLINE_FILE" \
-cp "$CLASSPATH" \
clojure.main -m leiningen.core.main "$@"
EXIT_CODE=$?
stty icanon echo
我修改了lein脚本中的那个部分,现在up = history。
答案 1 :(得分:4)
您建议的另一种方法是安装Cygwin中提供的rlwrap
。这将为您提供Readline功能(例如命令历史记录搜索和导航)到任何交互式命令行应用程序。如果你在任何时间内都使用了bash,你就会知道这些功能是什么。
您需要将应用程序作为参数启动到readline包装器,但可以使用别名或函数将其隐藏起来:
rlwrap lein repl
使用rlwrap优于您的建议的好处是它可以将此功能添加到不仅仅是repl的特定情况。