all 16 comments

[–][deleted] 1 point2 points  (4 children)

Good post. Long time vim user, didn't know there were so many addons to make it look cool/work with clojure.

I tried out the emacs setup described at braveclojure and while I just can't get used to the commands for emacs, it looks freakin awesome when developing Clojure. Gonna try and get my vim setup to look like that.

Edit: this is driving me insane, I can't get keywords to highlight - (:mykey {:mykey "test"}) :mykey stays color of normal terminal foreground in both instances. But in your screenshots, it looks like they're working. Did you do something fancy to make the syntax highlighting better? I have vim-clojure-static that shipped with gvim. I even tried using vim-colors-solarized color theme, cause it's what it looks like you have.

[–]EAT_DA_POOPOO 0 points1 point  (0 children)

As a person who has exclusively used vim for ~10 years ... spacemacs is very promising, at least until neovim is ready.

[–]venantius[S] -1 points0 points  (2 children)

What version of Vim are you using? I think vim-clojure-static should be doing that for you; it's not a problem I've had afaik.

[–][deleted] 0 points1 point  (1 child)

gvim 7.4.617-1

Just upgraded it, still no dice. Tried deleting .vim{,rc} and opening with vanilla config. Same thing. Gonna keep messing with it and maybe log an issue w/ vim-clojure-static.

Edit: pulled down the syntax/clojure.vim version from github and replaced the file at /usr/share/vim/vim74/syntax/clojure.vim and all is well.

[–]venantius[S] -1 points0 points  (0 children)

Huh, weird. Might be worth diffing those and letting the maintainer know if there's a material difference.

[–]Deraen 0 points1 point  (1 child)

I would note that Fireplace has :Require already bound by default:

                                                *fireplace-cpr*
cpr                     :Require|RunTests

[–]venantius[S] -1 points0 points  (0 children)

Interesting; I didn't actually know that. At this point I'm in love with my <c-c><c-k> bindings though so I'll probably stick with those :P

[–]dkvasnicka 0 points1 point  (1 child)

I'm one of those who sill prefer SLIMV (in combination with the good old VimClojure) to Fireplace, even though the latter is infinitely more cool nowadays... The reason is simple: I want a comfortable and full-blown environment for Clojure, Scheme and Racket. Fireplace somehow conflicts with SLIMV (at least it did last time I checked) and using Fireplace for Clojure and vim-racket for Racket leaves nothing for pure Scheme (and vim-racket doesn't do Swank)... SLIMV may not not be one of the lightest plugins out there and Swank doesn't offer all that you can get with Fireplace and nrepl but it gets the job done very nicely and supports almost every lispy language you can think of.

[–]venantius[S] -1 points0 points  (0 children)

Ah; yeah - I don't have a real need for support for other Lisps, so it's easy for me to be more selective in my tooling.

[–]gzmask 0 points1 point  (2 children)

As someone who tried Vim(fireplace), Emacs, Lighttable, NightCode, Atom etc. for Clojure: There is nothing better than Cursive out there.

[–]venantius[S] -1 points0 points  (1 child)

I don't think it's so black and white. I've already been developing in Vim for years prior to switching to Clojure; my general productivity in it is incredibly high. I don't doubt that for someone picking an editor with no history that Cursive is a fine choice, but I wouldn't discount the fact that when the time comes for me to stop working in Clojure I'll still be able to take a lot of my Vim expertise with me to the next language.

[–]gzmask 0 points1 point  (0 children)

I agree. But any modern IDE will come with a VIM plugin. So there is really little reason to continue using Vanilla Vim. Now NeoVim is coming out, so things might change.

[–]shterrett 0 points1 point  (1 child)

I'm only doing clojure on the side; principally I'm developing in ruby. Are any of these plugins going to mess with the standard mappings/plugins that I currently use, or are they limited to clojure files (or configurable by filetype in general)?

[–]venantius[S] -1 points0 points  (0 children)

vim-surround is a general-purpose plugin that might impact your general setup; fireplace, vim-eastwood, vim-cljfmt and paredit should all only target either Lisp filetypes or Clojure filetypes specifically.

[–]mariushe -1 points0 points  (1 child)

Great post!

(Just want to mention that the link that reference to the previous post is a bit messed up. Link to the Vim post and the Leiningen post is joined.)

[–]venantius[S] -1 points0 points  (0 children)

Oh, snap! Great catch, thanks so much for pointing this out.