As mentioned in comments rlwrap
is picking up where a native Clojure REPL is not "doing it", including arrow navigation, history and more.
However most (if not all) of the time Clojure is used together with lein
, which has a built in REPL. Every time a Clojure REPL is needed, you can do:
lein repl
You don't necessarily need to have a project to start it, it can be started from anywhere (given that you have lein
in your PATH
) and has many other very nice properties, which rlwrap
won't give you.
To name a few:
If you run it form under the root of your project, it will load project's classpath, so you can interact with all the libs and code of your project.
It will also start an nREPL
which you can connect to from anywhere (local/remote) including your favorite IDE/editors that are "nREPL capable". This would allow (for example) vim
or emacs
to use that REPL you started with lein repl
to evaluate, compile, navigate (source) right from the editor.
Before it starts it reads and "obeys" ~/.lein/profiles.clj
, where you can configure your sessions with pretty much anything you want: gpg keys, repl-options, dependencies, plugins, etc.. which will be loaded/configured on the lein repl