ClojureScript

Vim

Paredit

Emacs users are used to the paredit plugin that makes it easy to keep parenthesis balanced. Vim users can get the same effect with paredit.vim.

Multi-repl, single environment, evaluating forms from Vim

Dependencies

  • Install Tmux

  • Install tslime.vim

  • Install Leiningen plugin: lein-repls

  • Also install the cljsh script on your path

Configure Lein repl

In project.clj add:

  :repl-init myapp.repl

In src/clj/myapp/repl.clj:

(ns myapp.repl
  (:use [cljs.repl.browser :only (repl-env)])
  (:require [cljs.repl]))

(defn repljs []
  (cljs.repl/repl (repl-env)))

Run repls

  • Open two TMux sessions in your project root directory

  • Run lein repls in one of them

  • This is your "server" or "macros" or "clj" repl

  • Run cljsh in the other one

  • This is your "client" or "cljs" repl

  • Eval (repljs)

Connect VIM

  • Open two instances of Vim

  • One in your src/clj directory and one in src/cljs directory

  • Press cc in each, selecting the right TMux session when prompted