-
Notifications
You must be signed in to change notification settings - Fork 790
Emacs & Inferior Clojure Interaction Mode
DEPRECATION NOTICE: Please do not edit this wiki. Instead submit pull requests to https://github.com/clojure/clojurescript-site
The up to date version of this page can be found at https://clojurescript.org/tools/emacs-inf
The following instructions are for ClojureScript >= 0.0-3165.
Assuming you already have clojure-mode
, run M-x package-list-packages
and install inf-clojure
. If you are using Emacs on OS X be sure to install exec-path-from-shell
so that the Node.js REPL will work correctly. If you need exec-path-from-shell
make sure to follow the Usage instructions.
Create a REPL file that starts whatever REPL you like (refer to the Quick Start) and put it in your current directory. For example a repl.clj
file for the Node.js REPL would look like the following:
(require 'cljs.repl)
(require 'cljs.repl.node)
(cljs.repl/repl (cljs.repl.node/repl-env))
Edit your .emacs
or init.el
and add a function like the following if you are using the JAR in your current directory:
(defun cljs-node-repl ()
(interactive)
(run-clojure "java -cp cljs.jar clojure.main repl.clj"))
If you are using Leiningen:
(defun cljs-node-repl ()
(interactive)
(run-clojure "lein trampoline run -m clojure.main repl.clj"))
Open your ClojureScript file and run M-x cljs-node-repl
. You'll get a new buffer with the REPL. Switch back to your file and run M-x inf-clojure-minor-mode
. C-c C-l
will load the file. C-c Meta-n
will switch your namespace. If you place your cursor at the end of a s-expression, C-x C-e
will evaluate that expression. C-c C-v
will show the docs. C-c C-s
will show the source. C-c <return>
will macroexpand. Refer to inf-clojure for more documentation.
- Rationale
- Quick Start
- Differences from Clojure
- [Usage of Google Closure](Google Closure)