Hot CIDER Commands
When I first started using CIDER I was intimidated by the block of 41 cider-mode
and 25
cider-repl-mode
interactive commands (to be fair, there's a lot of overlap between the
two). Luckily you only need a small subset of these commands at your fingertips to be very
productive:
REPLs and Namespaces
Open a project file (created with Leiningen or Boot) and in that buffer C-c M-j
to
launch an nREPL server and corresponding REPL client. This client will be associated with
your project. You can see the nREPL server in the mode line – in my case:
cider[clj:demo@:51099]
You're done with your REPL and you want to quit: C-c C-q
. This is one of those commands I wish
I'd seen earlier. I spent so much time killing nREPL buffers manually.
From your clojure buffer you can use C-c C-n
to switch to this namespace in the REPL. C-c
C-z
actually switches to the associated REPL buffer (and back!).
Evaluating Functions
Load your current buffer with C-c C-k
. You can do form evaluation a few different ways, here are
the basics:
C-c C-e
: eval the form to the left of the cursor (the pipe below) and show the result inline.(map #(* % %) (take 5 (range))|) => (0 1 2 3 4)
C-c C-c
: eval the top-level form at point and show the result inline.(map #(* % %) (take 5 (range))|) => (0 1 4 9 16)
- Bonus: Try
C-c C-p
andC-c C-f
for pretty-printed popup buffer versions of the previous two evals, respectively. Useful for copying output.
Other Useful Tools
A few other basic but high impact functions include:
- Jump you to the definition of the symbol at point with
M-.
. - See clojure docs for the symbol at point via
C-c C-d d
and java docs withC-c C-d j
. - In the REPL
C-c C-o
will remove the result of the previous evaluation, useful especially when you have a verbose output clogging up your workspace. With the prefix argument,C-u
, it will remove all previous output.