Стандартный REPL Clojure с редактором буфера?
Я не ищу IDE или встр.расх. Я просто хотел спросить, знает ли кто-нибудь, возможно ли иметь редактор буфера в REPL, как известно из "psql" или некоторых оболочек *nix.
в psql, например, вы просто вводите "e", и вы получите последнюю команду в своем редакторе, и uppon exit она будет выполнена.
это было бы здорово для 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 / ~клуб / 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"
2 ответов
rlwrap
есть несколько способов достичь того, что вы хотите, но rlwrap binary делает то, что вам нужно. У меня также были некоторые проблемы с версиями jline в прошлом на Mac OS X, поэтому я перестал его использовать.
когда я набираю "clj" в своем терминале, он действительно выполняет REPL, обернутый rlwrap через следующий скрипт bash в /usr/local/bin/clj
:
#!/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:повышение Clojure REPL с rlwrap
посмотреть мои ответы на вопросы один REPL, чтобы связать их всех? и Как установить Clojure на Ubuntu 10.04 из репозитория Github без clojure.Джар. Основные моменты:
- не "устанавливать" clojure вообще. Установите Leiningen и позвольте ему управлять версиями clojure, которые у вас есть, а также получать пути к классам для repl или другого использования.
- если вы должны запустить clojure вручную, используйте
rlwrap
или какой-либо другой readline программа.