2016-06-16 2 views
3

Возможно, это вопрос новичков, извините, если так!Магазин Clojure REPL lines

Можно ли сохранить все строки, которые я набрал в REPL в файле? Возможно, его можно настроить для этого или сделать это до закрытия сеанса REPL.

Спасибо за ваш ответ!

+0

ли Вы использовать сидр? Или вы просто запускаете REPL с консоли? – OlegTheCat

+0

Я использую его с консоли. v1.8.0 – Christian

ответ

6

Leiningen хранит историю по умолчанию, когда в проекте:

$ lein new hello 
$ cd hello 
$ lein repl 
user=> (+ 1 2 3) 
user=> (exit) 
$ cat .lein-repl-history 

Boot всегда хранит историю по умолчанию:

$ boot repl 
boot.user=> (+ 1 2 3) 
boot.user=> (exit) 
$ cat .nrepl-history 
+0

А, я не знал. Большое спасибо! – Christian

2

Вы можете использовать служебную программу командной строки tee. Смотрите следующее:

$ lein repl | tee repl-output.txt 
nREPL server started on port 52576 on host 127.0.0.1 - nrepl://127.0.0.1:52576 
REPL-y 0.3.7, nREPL 0.2.12 
Clojure 1.8.0 
Java HotSpot(TM) 64-Bit Server VM 1.8.0_66-b17 
    Docs: (doc function-name-here) 
      (find-doc "part-of-name-here") 
    Source: (source function-name-here) 
Javadoc: (javadoc java-object-or-class-here) 
    Exit: Control+D or (exit) or (quit) 
Results: Stored in vars *1, *2, *3, an exception in *e 

user=> (+ 1 2) 
3 
user=> (println "Hello, world!") 
Hello, world! 
nil 
user=> Bye for now! 

И после того, как:

$ cat repl-output.txt 
nREPL server started on port 52576 on host 127.0.0.1 - nrepl://127.0.0.1:52576 
Clojure 1.8.0 
Java HotSpot(TM) 64-Bit Server VM 1.8.0_66-b17 
... 
... 

Обратите внимание, что такой метод будет захватывать весь вывод REPL наряду с формами, которые вы ввели.