Я не ищу IDE или встроенный REPL. Я просто хотел спросить, знает ли кто-нибудь, возможно ли иметь редактор буфера в REPL, как известно из 'psql' или некоторых * nix-оболочек.
В psql, например, вы просто вводите "\ e", и вы получаете последнюю команду в вашем редакторе и после выхода из нее она выполняется.
Это было бы замечательно для repl clojure.
$ 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
Для использования с leiningen на Mac OSX мне пришлось изменить следующее:
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"