簡體   English   中英

如何讓“lein repl”歷史在cygwin中運行?

[英]How can I get the “lein repl” history to work in cygwin?

我在Windows 7上使用Cygwin和最新的lein,但是當我在repl中時,上下按下讓我繞着repl控制台而不是向我展示歷史(這是我期望的)。 我已經google了一下,看到這與使用jline而不是readline(無論這意味着什么)有關,但我不知道如何使用這些信息來解決我的問題。

我在這里找到了答案:

我修改了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。

另一種方法給你建議將安裝一個rlwrap它可在Cygwin中。 這將為您提供任何交互式命令行應用程序的Readline功能(例如,命令歷史記錄搜索和導航)。 如果你已經使用bash任何時間長度,你將知道這些功能是什么。

您需要將應用程序作為參數啟動到readline包裝器,但可以使用別名或函數將其隱藏起來:

rlwrap lein repl

使用rlwrap優於您的建議的好處是它可以將此功能添加到不僅僅是repl的特定情況。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM