Hacker News new | ask | show | jobs
by alfiedotwtf 1924 days ago
I’m curious to hear from folks who have switched between the two, and have lasted for more than a year on both. If you’ve learned more than the basics and both became muscle memory, which did you end up sticking to?

(Vim user for 23 years, Emacs user of none... but interested because of Lisp)

10 comments

Vim user for 12 years, Emacs user for 5. I prefer and mainly use Emacs after I finally "got it". My previous attempts at learning Emacs weren't as successful because I was too biased about what a good editor should be like because of my familiarity with vim - mainly I was annoyed about silly things like having to press 4 keypresses for tasks that would take two keypresses in vim. So, if you decide to give Emacs a try, keep your preconceptions away and accept that it will take months before you "get" Emacs, the same way it probably took months before you "got" vim.

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.

Thanks for that... you seemed to be future me, and it sounds exciting!
do you think this always praised evil-mode feels natural to a vimmer or feels like something close but yeah, not great like all vim emulations in all other editos?
I was a vim user for 16 years (very proficient -- other developers in whatever office I was in would ask me vim questions) when I switched to emacs about 8 years ago. I switched for curiousity and to check out evil mode and magit.

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'll just say if you want to do Common Lisp, vim works fine, so don't let that hold you back from pursuing your interest. The slimv plugin is good. (Some people also like vlime better. To be honest I've had some buggy experiences with both, I suggest try both and pick what you like. vlime has one debugging improvement in that you don't need to manually call (swank-backend:restart-frame N).)

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'll just say if you want to do Common Lisp, vim works fine, so don't let that hold you back from pursuing your interest.

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.

In the 90s I used both editors interchangeably depending on the task (I had started with plain vi before vim). I was only grasping the surface of Emacs back then: I typically used it for editing plain text, emails, or scientific papers, but not as an OS or lisp system. I wrote code in either vim or Emacs without a clear preference, and sometimes I got annoyed at the extra milliseconds latency of starting emacsclient compared to starting vi. Once the majority of my terminals and shells were within emacs, I started favoring it. Once I realized that I strongly prefer to have several dozens, even hundreds of dumb terminal buffers with infinite history instead of proper terminals that can use curses but lack the complete past history, I switched to 95% Emacs, and I started keeping emacs sessions open for months at a time. Then I read the manual again, learned some elisp, added a couple convenience functions, and got totally hooked. Nowadays I may use vim once every couple of months, but the vast majority of my working time is within Emacs. Recently, I've started exploring ways to include part of web browsing in emacs, and I started wondering if most of my daily compute needs could be satisfied within Emacs. I guess that until I have a reasonable emacs interface on my phone, I will still spend some computer time outside of Emacs, but be warned that once you enter the Emacs cult, there is no easy way to exit.
I would say that what areally changes the game is to use evil (vi style bindings, 95% stays the same) with Emacs so you keep the muscle memory and you can keep making use of the common ex commands.

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.

I have used both daily for over a year (and emacs alone for a few years). Once I was used to vim, I started using evil in emacs. So, at least in reference to muscle memory, I ended up sticking with vim. The thing is, evil is a mostly complete vim implementation. If I were forced to choose one editor, it would definitely be emacs.
I’m a nvim user of 2 years, a doom emacs user of 6 months. I don’t intend to go back to nvim because org mode is just too wonderful, and doom emacs does a great job of making emacs speedy, though of course it could never be as speedy as vim, I rarely notice it
The distinction with regard to muscle memory between Vim and evil-mode Emacs is a false one. Try Doom or Spacemacs. You are likely to learn more about your editor and your development process with a tool like Spacemacs.
Emacs user for the years in college, with the occasional forced dip into vi.

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.

I won't hire someone unwilling to give emacs an honest effort.

An employer has no business dictating what text editor their employees use, if they're productive.

I have been using emacs like forever. Finally decided to learn vim 4 years back, as had to use Intellij Idea, and the default keybindings are crap for editing. Now, I use Doom Emacs with evil keybindings.

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.