This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2023-08-10
Channels
- # announcements (1)
- # babashka (16)
- # beginners (42)
- # calva (6)
- # clj-kondo (7)
- # clj-yaml (13)
- # cljdoc (7)
- # clojure (34)
- # clojure-bay-area (7)
- # clojure-dev (14)
- # clojure-europe (10)
- # clojure-nl (1)
- # clojure-norway (26)
- # clojure-sweden (91)
- # clojurescript (7)
- # datalevin (3)
- # datomic (35)
- # dev-tooling (8)
- # emacs (22)
- # graphql (1)
- # honeysql (13)
- # hyperfiddle (28)
- # introduce-yourself (1)
- # jobs-discuss (11)
- # juxt (4)
- # lsp (21)
- # off-topic (7)
- # reagent (4)
- # releases (3)
- # spacemacs (16)
- # xtdb (4)
- # yamlscript (2)
For clojure development in Emacs, do you use an emacs distro like doom or spacemacs or are you using vanilla emacs with your own config? Being familiar and somewhat proficient with both emacs and vim keybindings i’m having a hard time deciding.
![corgi-emacs](https://emoji.slack-edge.com/T03RZGPFR/corgi-emacs/3d548cf4bc83165a.png)
Doom is great! Also makes it very easy to switch to vim when I'm working over SSH and editing a file on a server
Doesn't really matter at the end of the day, try them all out and pick the one you vibe with most. #C01GE5PD249 has pretty decent clojure support, but all you really have to do is install cider
Yeah, cider and maybe lsp-mode+clojure-lsp
There are many Emacs community configs to choose from, most support Cider Repl, Clojure-mode, Clojure LSP (eglot or lsp-mode), etc. Using a community config helps minimise the learning curve and do more in a lot less time. However, if time is available and learning about Emacs and it's many hundreds of packages is more valuable then rolling a custom confirmation tailored to an individuals needs would be more appropriate. I use Spacemacs with Evil (vim style editing) as it works very much out of the box so I can be productive quickly, very little config needed (although can be customised heavily if required). I wrote a book about using Spacemacs for Clojure development (and other things), much of which is applicable to any Emacs setup https://practical.li/spacemacs/
i like to configure things as little as possible when starting out with some new tool, just to see what it’s “supposed” to be like (and to get a sense of what the creators think makes for sensible defaults 😉), and after slowly starting to configure it over the years, i’ve never felt a need to move to something like doom/spacemacs
I'm using vanilla Emacs, with my own custom config (built over the years), and mostly default key bindings (I only add a handful of them --probably less than 10--, and don't replace any of the standard ones, IIRC). But as others said, try several options and pick the one you are most confortable with.
hand rolled custom config, there's so much to learn even in Emacs itself, can't even think about learning doom / space / other on top of that
How do you get evil commands like dd to play nicely with balanced ()-pairs?
https://github.com/emacs-evil/evil-cleverparens or https://github.com/noctuid/lispyville are worth a look
If you choose the former and have any feedback, lemme know - I look after the project
I've been using the former with good success for a while now 🙂 I keep having random niggles, but they're so minor I forget to write them down to complain 😅 Otherwise it does the job great!
Any chance it could be added to doom @U043RSZ25HQ?
I use evil-cleverpaerens with Clojure, which is included in Spacemacs, enabled by a hook https://practical.li/spacemacs/structural-editing/cleverparens/ Would be nice to have it in other configs too
@UE1N3HAJH i added 'eval motions' to ecp, its been incredibly vital to my workflow https://gist.github.com/jasonjckn/b3c374c51c7d298982df985c313ff1b3
i could try to upstream it if you think you're likely to merge, or feel free to take my terrible code and make it nice
also in there, i have the ability to save to a register any sexp covered by a motion ,and remember which namespace it belonged to , so i can rerun it anywhere , sort of like q<reg>, @<reg>
@U0J3J79FE evil-cleverparens is supposed to be mostly programming-language-agnostic. So I'm always wary about adding functionality like this. I have thought for a while that there is appetite out there for an evil-clojure
or evil-cider
package, and some of your ideas could be good there.