This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
- # arachne (1)
- # beginners (31)
- # boot (84)
- # cider (9)
- # clara (2)
- # cljs-dev (102)
- # cljsrn (20)
- # clojure (254)
- # clojure-belgium (1)
- # clojure-dusseldorf (17)
- # clojure-greece (7)
- # clojure-italy (6)
- # clojure-russia (2)
- # clojure-spec (8)
- # clojure-uk (9)
- # clojurescript (93)
- # component (4)
- # copenhagen-clojurians (1)
- # cursive (24)
- # datomic (22)
- # editors (1)
- # emacs (8)
- # garden (2)
- # hoplon (357)
- # lein-figwheel (1)
- # leiningen (4)
- # luminus (27)
- # mount (13)
- # off-topic (7)
- # om (71)
- # onyx (35)
- # planck (3)
- # re-frame (53)
- # reagent (35)
- # ring-swagger (24)
- # specter (10)
- # sql (6)
- # untangled (47)
- # vim (157)
to me there doesn’t seem to be much of a functional difference, other than code being better maintained, and a better plugin api
I really like the term in neovim, it gives me a much better interaction than using tmux
@biscuitpants: I've been asking myself the same question. Using vim at the moment, I'm a bit worried about fragmentation between the two, for instance, some Clojure related plugins are appearing for neovim only. Right now I'd go with neovim but I'm having to use vim for some compatibility issues with other plugins so swapping between them for now.
oh, wow, if there are plugins specific for Clojure then i will have to go for neovim
i want to setup a vim environment for clojure development, that works as well as my emacs one
currently in emacs i have clj-refactor, cider (ofc), paredit, and rainbow parenthesis
https://github.com/SevereOverfl0w/.files/blob/layers/nvim/layer/clojure/package.vim Plugins I use for clojure
That rainbow package is by far the best. The others break syntax folding with clojure.
@dominicm: I really like the layout of your nvim dotfiles. Is that something you came up with? Or a convention documented somewhere?
@markwoodhall I use an overly complex init.vim 😁 I think gh user Jayes came up with it.
It's pretty cool though. I do miss the ease of editing a single file, but I love that when I run
EditLayer clojure I can really focus on what I'm fixing.
I need to figure out dependencies a little bit though I think. Like, how to have my clojure layer insert autocompletion for itself. I think I'm going to have to come up with a pseudo dependency system.
It does look pretty cool, I've struggled with an unmanageable .vimrc and wanted to take advantage of moving to nvim and clean it up a little, something like this looks like it might be nice though!
thank you @dominicm, i’m definitely going to use your nvim as a base to start on. seems really nicely organized
I saw you guys mention your worries about neovim vs vim. I'd be interested to hear more.
@markwoodhall what plugins do you need to switch back to vim for? That's very interesting. Everything works for me. :s
I guess I could get by without it but I'm using a plugin for C# and .net stuff, last time I tried I had issues with it. One of which was python version related. I am using it alongside neocomplete and I also couldn't get it to work with deoplete.
Ah, might be okay now. Depending on when you used it, neovim's python support is better than it was. Things like
if_python work again.
Cool. I'll give it a try again. I'd rather ditch the C# stuff altogether if I'm honest!
yeah. i’ve played with it a lot, but never had time to fully set it up to my liking
@biscuitpants you can see my setup here https://github.com/zamaterian/dotfiles/blob/master/.vimrc as inspiration (its only for neovim)
@biscuitpants I've used Arch since I was ~14, never used OSX. So not much of a comparison I can make.
Hadn't seen the grimoire plugin before either. Someone should put together a big index at some point.
I could fork to vim-clojure and fix it up if you think it would be useful to others.
@zamaterian https://github.com/zamaterian/dotfiles/blob/master/.vimrc#L495-L502 I don't understand how this is different from
cpaF in vim-fireplace with vim-sexp though. Am I missing something?
@dominicm regarding grimoire its kind of usefull since it contains user commited examples. It popped up when clojuredocs was not maintained.
@zamaterian Ah. That's okay then. I didn't see a mapping to
(reset) anywhere? Do you not use component, or does it not work?
Makes sense then. I've done a lot of fiddling, and had to settle on using thinca/vim-localrc so I can have a per-project namespace which
(reset) runs in, it's been a bit of a pain.
reloaded.repl makes this somewhat easier, but not everything uses that (yet 😈)
I didn't realise until joining this channel that there are so many vim loving clojurists. I'd kind of felt an internal pressure to start moving to emacs (spacemacs) but I've been resisting.
https://static1.squarespace.com/static/5372821be4b0aefc6719057e/t/56a7dc8d3b0be343e82ef921/1453841550679/?format=500w I suppose this should give us a clue though. We're not too minor: 13% or so.
@zamaterian I use neovim terminal sometimes. Most of the time I just open a new terminal and start my repl there.
I do all evaluation through
cpp from there.
But I'll probably have a go at stealing some of @zamaterian's stuff to see if it changes my workflow much
Maybe that should be renamed to just
Clojure with Vim, I think it's a bigger picture now.
I really uses this a lot https://github.com/zamaterian/dotfiles/blob/master/.vimrc#L514
Sorry, I mean - do you use the REPL in the terminal, in place of
cqp, or do they serve different purposes?
I prototype a lot in the repl, testing things out - mainly I just eval the entire ns (buffer) Eval% or using
nmap <Leader>e <Plug>FireplacePrint<Plug>(sexp_outer_top_list) for eval a function
cqp for testing things out. And
<localleader>rs to reset via t.n.s. Interesting how people come to such different solutions to same/similar problems. This is why I love vim though 😄
I really like that I can navigate to a function in a zip file (a dependency) and then change the definition and using <Leader>e to hotload it into the jvm. Its a great way of debugging.
I do that all the time, it's so much fun. Except I've noticed that if I don't change it back, it seems like the jar gets cached or something, and it includes my println in other projects.
@markwoodhall I don't, because the
(require 'blah :reload) is a little dated in wake of clojure.tools.namespace.
I mainly uses this function `function! RefreshNS() call SendToREPL("(require '[clojure.tools.namespace.repl :refer [refresh]])(refresh)") endfunction`
I'm always using it in a context of a buffer (eg. when renaming vars, changing multimethods stuff like that)
Absolutely! I'm really looking forward to meeting people I've met online over the last year.
i use vim-slime (https://github.com/jpalardy/vim-slime) to send a clojure form to a neovim terminal
It should be possible to use async with fireplace, I just need to spend some time figuring it out
Worst case scenario is a partial implementation of fireplace built on nrepl-python-client
I tried doing the eval to a terminal window but I found that with very large forms (like evaling a whole file) the pasting would cut off.
basically node-host allows async commands/functions etc that return immediately. however calling fireplace from those async things will still lock up the editor
Oh, is most of the heavy lifting in the clojurescript then, and the evaluation is quick?
well, parinfer is all cljs. refactor tries to keep the heavy lifting in cljs like you say
I think i'm the only one who gets bug reports when it breaks, and my time has been super curtailed lately
@snoe oops, yeah. Refactor. I didn't realise it would lock up the editor if it's slow.
@snoe Yeah, I've been meaning to report an RPC breakage in neovim 1.6. I'm kinda hoping it'll fix itself.
I'm about one evening of development from being able to use it in my daily development
But, I am focusing on it with all of my after hours time, and 20% time at my day job.
@dominicm it's horrendous now, but that's only because it's a proof of concept built on lein. The end product will be cljs + node, so startup time should be negligible.
At least, that's my current thinking. Even just removing lein should bring the startup cost down to about a second.
I think I speak on behalf of us all, that I'd love to see a cljs client to replace fireplace, supporting async and such
That's definitely the goal. Creating the neovim clojure host is really only a means to that end, but it is a nice side effect.
I'd at least like to create some gravity around an alternative, even if it's not feature rich at first. Then, see where it goes.
Maybe a bit more controversial question would be whether to use the built in socket server / repl, or to use nRepl.
after reading the differences, i can’t really decide why i’d chose one over the other
And when dealing with git submodules, you have to specify the commit to use, maybe even more declarative?
Or maybe even on file system level, but I agree :). I like it being a line in my config, preference thing.
yeah pathogen seems super nice, but i like the thought of having my vimrc with my plugins, instead of submodules
The biggest benefit for me is that I am certain to run the same version both on desktop and laptop. Other reason is that I anyway use lots og submodules on my dotfiles repo.
Plug can pin version to a commit, I usually just want to run master and update regularly.