3 ms·
Brief overview of the landscape: For clojure/clojure-py/clojurescript, I start out with vim-sexp[0] (for vim motions over sexpressions; some people prefer the
by emidln 13y ago
Brief overview of the landscape:
For clojure/clojure-py/clojurescript, I start out with vim-sexp[0] (for vim motions over sexpressions; some people prefer the more common paredit.vim[1]), rainbow-parenthesis.vim[2], and vim-clojure-static[3] (for indention rules, syntax highlighting, etc).
You'll want those regardless of which way you use to interact with Clojure. On top of that, you probably want some way to access a REPL. The top contenders seem to be:
fireplace[4] (NREPL-based quasi-repl)
slimv[5] (SLIME for CL, Clojure, Schemes, etc)
vimux[6]/tslime[7] (copies from vim registers to a
tmux/screen window where you presumably run lein repl or something)
fireplace works pretty well. In theory, it can pick up the rest of the clojure world's nrepl middleware for advanced features. In practice, nobody seems to be doing this. I haven't looked into the codebase to figure out how to add support for various nrepl middleware, but it should be possible.
slimv doesn't seem to be as popular in Clojure land. Most new development is based around nrepl, but you get some (not all) of its functionality thanks to ritz[8] being abstracted.
I use vimux and normal vim shortcuts/macros to abstract my workflow. I like being able to handle cljs and clj in the same manner that I handle Python, Hy, Perl, and JavaScript. This is probably the route that requires the most vim knowledge and comfort with programming your lisp environment to make work.
[0] - https://github.com/guns/vim-sexp https://github.com/guns/vim-sexp
[1] - https://github.com/vim-scripts/paredit.vim https://github.com/vim-scripts/paredit.vim
[2] - https://github.com/kien/rainbow_parentheses.vim https://github.com/kien/rainbow_parentheses.vim
[3] - https://github.com/guns/vim-clojure-static https://github.com/guns/vim-clojure-static
[4] - https://github.com/tpope/vim-fireplace https://github.com/tpope/vim-fireplace
[5] - https://github.com/kovisoft/slimv https://github.com/kovisoft/slimv
[6] - https://github.com/benmills/vimux https://github.com/benmills/vimux
[7] - https://github.com/kikijump/tslime.vim https://github.com/kikijump/tslime.vim
[8] - https://github.com/pallet/ritz https://github.com/pallet/ritz
- ColinWright 13y agoThank you - much to think about and investigate. It would be nice to get a similarly detailed response for the Scala and Common Lisp eco-systems.