(Vim user for 23 years, Emacs user of none... but interested because of Lisp)
(Vim user for 23 years, Emacs user of none... but interested because of Lisp)
I still use vim when I am at a new system or on a remote server, but Emacs is love, Emacs is home. It is the most open, discoverable and hackable software system I have ever used. Every action, button, keybinding is easily introspectable - and it takes only a few clicks to get even to the source of the functionality that you are interested in. Almost every aspect of this system is modifiable by the user, even on the fly.
The only downside is that it is so much fun to play with your emacs config that you might spend too much time doing that instead of productive work. By contrast, vimscript is so disgusting that I don't think that I ever wrote a single line of vim config that wasn't copy-pasted from somewhere.
A couple years ago during a lull in a dev cycle I built a neovim setup to see the state of that art but I didn't stick with it.
I've rewritten my emacs configuration many times, swapped between spacemacs, vanilla, and doom. I am currently on doom emacs with my customizations.
I also do not use evil mode anymore. Default emacs bindings make a lot of sense to me. I can still use vim with muscle memory, but I reach for "mg" if I need a quick edit more often than not.
I'd like to give emacs one more chance, but haven't gotten around to it. Last time I tried Spacemacs (for about a month, sorry not a year) and ultimately didn't like it, I'm planning on trying Doom Emacs next.
I agree. For those who are interested in using Vim as their development environment for Common Lisp, I have written a detailed comparison between Slimv and Vlime here: https://susam.in/blog/lisp-in-vim-with-slimv-or-vlime/
And for those who are willing to start Common Lisp development using Emacs, there is Portacle which is a really quick way to set up a working environment with a few clicks. There is also https://github.com/susam/emacs4cl that I wrote to offer as a quick-starter DIY alternative for those who want to use vanilla Emacs and want to configure it themselves without wasting too much time.
I have gone back and forth between vim and emacs, usually for a bunch of years each time before currently settling on emacs with Doom. With the nativecomp branch, it's actually pretty snappy and doom emacs is a great setup to get started without drowning in the amount of configuration.
I would say that I just love vim style input and modal editing, but doing that on top of emacs with evil mode and elisp is a better match for me than vimscript. The feedback loop you get with LISP and emacs is incredible when tweaking things to your liking.
Every function is accessible, there is just a global scope and you can call pretty much anything. It's sounds like an horrible idea, but it also means you can quickly hack stuff by reusing the internals of a package you like.
For example, it took me half an hour to initially POC this https://github.com/jhchabran/ivy-lsp-current-buffer-symbols by just skimming through the emacs-lsp codebase and randomly trying funcs in the repl to get an idea of what each function was doing.
Vim user for ten years after college with a couple of forced dips into Eclipse and other IDEs, with vi keybindings where available.
Evil emacs user for about the last ten years. Magit makes me happy. Tramp wins the "but vi is everywhere" conversation. Org-mode wins.
I won't hire someone unwilling to give emacs an honest effort. Switching back to emacs remains the best professional decision I have made.
An employer has no business dictating what text editor their employees use, if they're productive.
I am glad I took time to learn vim. The editing concepts around motion keys, text blocks etc. are just so much more powerful than emacs way.
I recommend all emacs users to learn vim atleast give evil mode a try.