Time To End The vi/Emacs Debate

Edwin Torres, D.Eng. on March 18, 2018

I originally posted this article at BLOG@CACM. There has been a long-standing debate among programmers. It is as fierce as the Hatfields/McCoys,... [Read Full]
markdown guide

I've been wondering why these editors are still around. I mean, we have IDEs and on rare occasions when there's a need for interactive git rebase it's easier to use nano.

Am I doing something wrong?


Well, you're using nano... I never know how to do anything in nano, it's stressful. vim is much simpler and a pretty good editor to use over SSH


Vi is ideal for editing config files, particularly inside of ssh sessions. It's also arguably just as easy to use as nano for things like rebases once you've learned the basic commands.

Beyond that the keybindings allow for some insanely quick text editing but require a bunch of time to learn, so not sure where the break-even point us in terms of time saved....


I have been using nano for year before thinking I needed more for remote access using ssh. For me I notices that after only 10 minutes in the vimtutor i was on the same level as my nano skills. maybe this gives an estimate for your breakeven point.

AFter that doing each day a few lessons on the vimtutor made it even easier to use vim and really saved more time editing.

I believe I'm still close to the level that vimtutor thought me, because honestly I don't need much more for my remote editing. maybe I picked up a a few tricks when I had specific needs that I googled. Programming I still prefer to do in a complete ide, simply because it saves time, just like vim does for me in the cli.

Saying that vim had a steep learning curve probably procrastinated my choice to try VIM. It actually is pretty easy and fast to learn, you just have to invest 10 minutes to get started using vimtutor. I think that learning the same tricks in other ide's took even more time, but the keystrokes are ofter the same i give you.


I find using an editor such as Vim makes it easier for me to program across multiple languages. Most of the IDEs I've used (with the exception of some like IntelliJ which may be primarily for Java also has Scala functionalities as well) It seems cluttered to me to have an IDE for each language I use when I can use the command line and Vim and get the same done. Academia forces me to be multi-lingual when it comes to programming. I've used Python, C/++, Java, Scala as well as a few query languages. Using IntelliJ, MS. Visual Studio, and PyCharm seems to be a lot. Using vim (with plugins) makes transitioning a lot easier for me.

That all being said, if you're developing in only a few languages then I would see why an IDE would be useful. I wouldn't necessarily say you're doing something wrong. At this point it's more of a question of taste versus functionality I feel.


It's probably because sometimes a simple text editor on a non-windows system is all you need. vi and Emacs are bundled with Linux. If you're not running X Windows, then you're not going to have a graphical IDE.


So does it mean vi & emacs application is limited to editing configs via ssh?

Both vi and Emacs are plain text editors. Use both to edit text files in the file system.


Both Emacs and Vim are very lightweight and fast. Also, they are easy to use over terminals on remote computers.


You're missing the point. Vim is not about a single editor (Vim, MacVim, Neovim etc.) - it's an idea. Idea that can be implemented in other IDEs.
It's an awesome idea. Probably the best idea since the dawn of typed input.
And you might be surprised to find out that Emacs today can actually Vim better than Vim itself. Try Spacemacs.


22,582 questions asking how to exit vim isn't a good endorsement😉

It is also interesting to note from the survey that most the vim fans are system admins which is probably due to it being about the only editor you can guarantee to be in a Linux distribution.


Horay vim! I still find :x in git from time to time when I use sublime...
I tried emacs too breifly, but to be fair I didn't like vim at the time either. Vim has its place in my workflow as does sublime. I got vim-multiple-cursors and ctrlp-vim and that's more than enough for putting out production fires.
I love sublime and vim for the same reason I hated eclipse - do fewer things well as opposed to everything poorly (or average). I will always tend towards lightweight, performant editors/IDEs as I value performance and speed over sugar.


Popularity is not quality. Vim is my favorite configuration file editor. Emacs is my favorite IDE.


Isn't it confusing going back and forth between the vim and Emacs syntax? After all these years, I still have vim commands to learn.


Emacs + evil gives you the power of emacs with vim’s Keybinds

Or use Spacemacs, which takes the pain out of configuring it. You can choose evil-mode on first run.


The appeal of Emacs was being a super-configurable editor, where the editor itself is just another plugin - which means that every plugin author has as much power as the editor developers. Another property of Emacs was it's willingness to consume much more system resources in order to provide the user with more features and flexibility.

Doesn't that remind you of Atom? VSCode also shares that architecture, and Sublime - while using a more conventional architecture - is also extremely configurable.

The appeal of Vim is modal editing. Very few other editors share that idea - like Neovim (which doesn't really count, since outside the Vim vs. Neovim debate Neovim users will identify as Vim users) and Kakoune (which still has only a tiny market share...). Can't think of any others...

My point is that those appealed by Emacs can find the same appeal in many other editors, and have probably spread out to them, while those appealed by Vim need to stick with Vim. That's why Vim keeps it's market share after so many years - because no one bothered to imitate it...


Great read to jump start my morning, loved the humor.
For some reason I started out with nano and learned vi later and still do configuration files using nano. Going to use vi a bit more from now on... After downloading the check because I need them ;).


Thanks for recognizing the humor! Glad it made your day. ;-)


I've used both. I like emacs more but since some form of vi is almost always pre-installed on even the most minimalist/embedded unix-ish machines I pretty much always use vi.

But I have to ask: Why on earth do you care what editor other people are using?


It's just an on-going debate among programmers. I just find it funny.


Still remember the shock the first time I saw a guy used Nano. I can understand vim, Emacs or even moving the file to Windows to edit. But Nano?


You're not taking into account the fact that emacs has it's own stackexchange with thousands more questions than the vi stackexchange (which is still in beta). Looks like the war still rages on...


Ah, true. I missed that. However, the vi/vim stackexchange has 2,000 more users, and it's 5 months younger. ;-)

code of conduct - report abuse