Как я могу повторить последнюю строку в Clojure REPL?
В bash или Ruby IRB я могу выполнить команду или оценить выражение, а затем использовать стрелку вверх на клавиатуре для редактирования и повторного запуска того же кода. (Это может быть что-то, что я настроил, но я так не думаю.)
Это не работает для меня в Clojure REPL; Я просто вижу ^[[A
набрал, когда я нажимаю стрелку вверх.
Есть ли способ "перепечатать" последнюю строку?
1 ответ
Как уже упоминалось в комментариях rlwrap
подбирает, где нативный Clojure REPL не "делает это", включая навигацию по стрелкам, историю и многое другое.
Однако большую часть (если не все) времени Clojure используется вместе с lein
, который имеет встроенный REPL. Каждый раз, когда требуется Repl Clojure, вы можете сделать:
lein repl
Вам не обязательно иметь проект, чтобы запустить его, его можно запустить откуда угодно (учитывая, что у вас есть lein
в вашем PATH
) и имеет много других очень хороших свойств, которые rlwrap
не даст тебе.
Назвать несколько:
Если вы запустите эту форму под корнем вашего проекта, он загрузит classpath проекта, чтобы вы могли взаимодействовать со всеми библиотеками и кодом вашего проекта.
Это также начнет
nREPL
к которому вы можете подключиться из любого места (локального / удаленного), включая ваши любимые IDE/ редакторы, которые "nREPL-совместимы". Это позволит (например)vim
или жеemacs
использовать тот REPL, с которого вы началиlein repl
оценивать, компилировать, перемещаться (источник) прямо из редактора.Перед тем как начать, он читает и "слушается"
~/.lein/profiles.clj
где вы можете сконфигурировать ваши сеансы практически с любым, что вам захочется: ключами gpg, параметрами repl, зависимостями, плагинами и т. д., которые будут загружаться / настраиватьсяlein repl