Shared publicly  - 
Vi/Vim vs. Emacs Shootout and Deal at O'Reilly Media

The other day in my Google+ post about vi and vim , I found myself getting pulled into a discussion in the comments about the virtues of vi vs emacs, and retelling a story from the early days of Linux, when we sponsored an annual vi vs emacs paintball match at the Atlanta Linux Showcase.

That story reminded me of how much fun it is to get those competitive juices flowing. I suggested to +Allen Noren, who runs, that we ought to do a series of x vs y promotions scored by whether product x or product y generates more sales. And of course, because vi vs emacs was the provocation for the idea, we thought we'd start there. Accordingly, today's @oreillymedia"deal of the day" pits vi against emacs.

Of course, because a contest like this cuts out anyone who's already bought any of the relevant books, we wanted to give people a chance to vote for their favorite. As of right now, vi/vim is in the lead by about 60% to 40% - but that's down from the old vi vs emacs paintball days, when the signups for the vi team were always 2x the emacs team.

Let me know in the comments what other "face-offs" you might enjoy seeing, as well as ideas for creatively engaging people in exploring backlist titles that they might love if only they knew about them. There are the obvious examples - language books, operating systems, devices - but I bet there are other creative ideas that we're missing.
Teddy Rabary's profile photoPranav Kant's profile photoLuis Uribe's profile photoPhilip “Mole” Rowney's profile photo
How about UNIX System V vs. BSD UNIX? ;-)
vi rules, emacs drools. [giggle] I love beating a dead horse
+Michael Nachtigal - even more than this! I've recently had a sort of ambiguous situation because of company's shipping policy and the customer support solved it just perfectly!
+Jim Eikner that's one of my favourite Usenet posts! :-)

Message-ID: <>
"Building Internet Firewalls" vs "Secure Programming Cookbook for C and C++". As a network guy myself, I try to tell developers that I can build the most secure firewall in the world, and they can f*ck it all up with a stupid or missing input validation.
Nowadays the paintball wars would need to include Eclipse and TextMate.
+Morgan Catlin incorrect assumption, some symlink vi -> vim

Ed is the standard text editor… no, really – it is! :-)
I know many people who love vi/vim. I haven't met anyone who loves emacs since college, and that's getting to be a substantial number of years ago.
I remember so well the days of "VIVIVI is the number of the beast" and "Emacs means eight megabytes constantly swapping".
Must've been when eight megabytes was a lot of memory for a program ;)
+Jason Tatem I use EMACS for almost all my developments and text editing needs. Heck, I even use it for IRC and Twitter! I love EMACS. Not against vi (it's good when you have just it), but a good install made by me needs EMACS
I love emacs -- have been using it for over 20 years. Tried out vi/vim, but constantly switching into insert mode was annoying and slowed me down. At this point, emacs shortcuts are wired into my brain, and love being able to use them in bash and other parts of the UI.
Most of our students use Eclipse or NetBeans and they are often amazed at how fast I can work when coding.
+Tim O'Reilly Emacs for me, been using it continuously since Unix days back in the late eighties... never liked vi/vim.
I can suggest everyone EMACS for one thing:

1-) Create a file (C-x C-F) with name .emacs
2-) On it add the lines
(require pc-select)
3-) Save, close and reopen emacs
4-) PROFIT! A easy to use text editor for anyone that came from notepad or so on (and classic EMACS navigation still works);

I don't remember vi being friendly as this!
What about Eclipse vs. NetBeans (vs. Idea)?
Spectrum vs C64, Amiga vs Atari ST, Megadrive vs SNES, VHS vs Betamax, XBOX vs PS3 repeat to fade...
My only gripe with vim is that people confuse with vi. I end up installing nvi (thanks, +Keith Bostick!) everywhere because I simply cannot stand vim.
Emacs is my editor of choice, never liked the modal editing Vi{,m} has. Also, because when I need to edit some text, I might just as well use a full-blown OS to do that :3
Suggestions for other wars:

Ruby vs Python.
MySQL vs PostgreSQL.
Java vs C#.
iPhone vs Android.
Git vs Mercurial.
PHP vs Perl.
SOAP vs REST (that one'll be a walkover).

And I started out as an Emacs user, but after finding myself forced to learn to get around in vi, after an afternoon I got past the initial learning curve and discovered ohmygod it was so much better than Emacs.
+Peter Moore training courses should start beginners off with an ancient copy of UNIX running on a PDP-11 emulator, and work their way along the timeline from there </humour>
+Peter Moore. I do love PuTTY. I used to be a Solaris admin. I installed TightVNC on the Solaris boxes for the odd case where I wanted GUI access, and PuTTY on the desktop.

I have Cygwin, but there are enough native Win32 ports of various Gnu tools that I could probably live without it, including bash and zsh.

And I'm tickled with MinTTY, which is PuTTY minus the telnet/ssh code, and being used by Cygwin to replace rxvt. There's a native Win32 port, too.
It's been Emacs all the way for me since the late 80s, too. I first came into contact with a vi clone called "Z" on the Amiga (part of the Aztec C environment) and could never wrap my brain around it (but then, we had the world's best editor "CygnusEd" on that platform, so there wasn't a need for another one really ;-). Also available on the Amiga: MicroEmacs. That more or least segway'ed me straight to GNU emacs during my uni days, and I've been using it ever since.

As if you needed another reason to run Emacs, check out org-mode. (
I used to use Emacs for everything, but I eventually got tired of reaching for the bucky bits on the keyboard all the time. Vi(m) is so much more powerful as a text editor (though certainly less so as an operating system). Being able to execute any command or sequence of commands any specified number of times with just a few keypresses really makes it easy to navigate and edit large amounts of text/code/whatever in short order. It's feels like you're piloting your text editor rather than writing in it. Also, Nano/Pico == Windows NotePad "Don't Make Me Learn" Edition. Just sayin'.
Either that debate, or TextMate vs. Sublime Text. Wait, can TextMate still be considered developed?
Vim, of course. I've just got ten fingers.
Xemacs - btw I have two O'Reilly Emacs books - but the slim volume "Writing Gnu Emacs Extensions" has helped me a lot over the years.
Processing vs. Flash/ActionScript
It amazes me that I still use vi on Unix/Linux boxes, but I do. I only use the most basic features, never mastered anything about it (should have bought an O'Reilly book), but its still the thing I default to when I want to make a quick edit of something.

Face offs: Android vs. iOS or XCode vs. Eclipse :)
The whole "modal" argument never made sense to me. With Emacs you essentially switch modes with ever single key combo.

I soured permanently on Emacs many years ago when the source code passed something like 8 meg. This was when most computers had 4 to 8 meg of memory.I seem to recall that the source code for Emacs was larger than the GNU suite and a number of other things combined. That made no sense to me. Plus it started to take days to compile. Very bad.

VIM is great in that it add column editing functions. I still hate the fact that every vi variant except elvis insists on randomly inserting tabs in my files by default. Tabs can vary which in conjunction with true white space makes for some very ugly and inconsistent indenting, so its asinine and frustrating that this is still done in an era when disk space is not at a premium.
+Matthew Popke I know this is anecdotal, but everyone I know who has crippling RSI is a serious Emacs user. I've not met a vi user with RSI problems. RMS himself probably destroyed his wrists with his own creation.

Also, I've observed that vi users seem to be more mentally flexible and willing to use other software. For example, I use vim, Eclipse and TextWrangler, depending on which is best for the task. Emacs users tend to be extremely unwilling to use anything else. I call it EBD.
I'm doing most of my bash scripting etc in vim. For anything I need more tools for, I use emacs + evil, including for Lisp programming.
I'm sure the Emacs numbers will jump once someone finishes the major mode for voting on in this poll.
I think you have to learn emacs like you do a spoken/written language: immersively. I never had the opportunity to live in it (or perhaps never understood how completely one could live in it: read email, net news, do actual work, etc. without using any other program). vi[m] allowed access to enough features for the simple tasks I needed to do.
As someone else I think said I bet most (X)Emacs users use vi(m) for small, lightweight tasks but revert to (X)Emacs for more substantive tasks. I know I do.

Sure, if I just have to take a quick peek or make a quick change to a file vi is great.
I cast my vote for Vim and then bought both books, because I'm fickle like that. 
How about a faceoff of Rails vs Django?
+Mike Miller The modal design took a little getting used to, coming from early PCs with a different idea of what full screen editing was (think WordStar.) Life got rather easier when I got a vi macro package that made arrow keys work in Insert mode.

The big leap for me was coming to PCs and Unix from an IBM mainframe using TSO/SPF. 3270 terminals are "block mode". You cursor around the screen, make your changes locally, hit enter, and the entire screen gets sent to the host. It's a completely different paradigm for full screen editing. Wrapping my head around character at a time I/O was more of a leap than dealing with vi modes.
A lot of my FLOSS Weekly listeners have been pointing this shoot out to me. I wonder why?
Emacs here. I have bought both books from O'Reilly and have spent time trying to learn vim and viper to see what the hype is about. Now I do use vim occasionally for small shell scripts or when I am logged in as another user. However, I have actually found modal editing to be slower in certain situations when you often have to switch between modes, especially if one hasn't remapped esc. And also emacs just allows me to do things I couldn't dream of doing in vim. And sometimes colleagues who use vim ask me how they can do something that is trivial in emacs.
Vi for me, too. 20 years later, I can still remember most of the arcane keyboard commands. I was teaching at Berkeley during the days of BSD Unix, so I got to try many of the evolving versions of vi in 1980. It was certainly a huge improvement over ed and ex, but it came with the plague of writing entries for every imaginable CRT display so that the curses library would properly display the text.

I've always thought that the vi vs. emacs argument was largely geographical. Tim: you went to school back East - that should put you in the emacs camp.
I remember that paintball match. I remember being in a gully with ESR, out numbered by vi users 10 to 1 :-)
+Tony Wasserman Things got easier as the number of imaginable CRT displays reduced. (Some early entries didn't have things like F-keys or arrow keys.) But if the terminal could clear the screen and home the cursor, vi would work.

Reading old termcap entries can be an amusing glimpse of bygone days. And to be fair, vi wasn't the only thing that used them, though you can make a case that vi spurred the whole development of termcap. I spent the odd hour back when hacking termcap to try to better support terminals I was using. One of my first O'Reilly books was their ancient volume on writing termcap and terminfo entries.
I have written my first email using the vi and it ended up blank because I forgot to... And the first question I got on a date was: "What is your favourite editor?" My answer was vi and the things were OK. Even after all those years and having had Richard Stallman as a guest in my house, my answer would not change. ;-)
TextMate! I like Emacs too, but nothing beats TextMate.
vi, but I am open to trying vim
Of course the vi book outsells the Emacs book, because it's impossible to use vi without a book by your side. ;)
By the time you add user written commands - Emacs runs laps around vi. I have a command that I wrote that goes to a hidden subdirectory, where it finds previous file versions that are identified only by number, finds the largest such number, then does an ediff between the current buffer and that file that I found. OK, maybe vi could be customized to do that - but I sorta doubt it and likely not very easily. For me it's maybe 10 lines of elisp code (maybe) and a keybinding. Use it all the time. And that's just one example.
I use VI if I have to. I use WD40 to loosen bolts.
I'm sitting here looking at my vi command reference coffee mug. I vote nvi ...
But I like nvi - which I thought when it first came out was described as bsd vi done right....
it's okay, I'm not too awful worried about chrome on OpenBSD getting exploited terribly by a malicious website. I wish the world could share my sense of "security."
Vi all the way :)
a gentleman never discusses religion or editors. hahaha
How about a faceoff between ruby, php, perl, python and other interpreted languages? Most pick one and stick to it, a comparative analysis of each of their virtues and vices would be nice.

Emacs obviously bites the dust in a vote versus vi. While I like vi a lot I just never used emacs enough to make a case. Since forwarding connections over ssh has become trivial I have started to use editors like kde's kate for quick on server edits anyway.
Why encourage these false dichotomies? Vim and Emacs have a lot more in common than is implied by setting up a rivalry. I worked on the original ITS emacs and spent hours and years working with RMS (yes, often in the same room) and I bear no ill will toward Vim users. This type of contest is what divides communities, not builds them.
+Tony Wasserman I went to Iowa. I guess because we are in the middle, we are neutral. Comp Sci department was in vi camp and Engineering department was emacs.
Such debates are a pathetic waste of time.
I don't always use a ASCII editor... but when I do... I use vim/vi.
Most emacs users can use vi, I don't think that goes the other way.
However, I am a life long Vi user and proud of it. I'm also a touch typist which makes a huge difference as to the command set. I do not what to be using the mode-less Ctrl key for commands, I like the home row motion and simple one character commands.
I know one Emacs command, how to get out of it if I accidentally end up in Emacs somehow.
My vote is for.....The best tool for the job!
I was really jazzed to see this offer, but am getting persistent error 500 from the site... <cry />
With Emacs you can code like real men: M-x butterfly to unleash the powers of the butterfly.
How about erlang vs scala for a shootout?
i use emacs to web browse, irc, mail, tweet, text, and many other tasks.
now i'm just read it,haha
Love your company's policy on electronic format upgrades for owners of the printed books. I wish every book publisher was as generous.
Emacs because it's a programmable editor. E-lisp is much better than Vim-script IMO.
But it's good that both editors thrive.
Emacs is my choice. I think it is kinda like dog people vs cat people. It is mostly about taste.
emacs is not a text editor 

its more than that.

its a little OS within OS. :D
vi, I'm very much a minimalist at heart.
every fresh install:
. before: apt-get remove nano and apt-get install vim-tiny
. now: apt-get remove nano and apt-get install emacs23-nox

I used vi, vim and now emacs, I liked vi and after vim because this is the first text editor I use since I began use linux (mandrake 7, yeah it's old :) ), I still used vi even when I converted to woody and sarge.
I think I begin use vim with etch, I continued with lenny.
Even a little with wheezy, and now I use emacs and since I learned something every day I use it :)
With nano I have no choice because it is the text editor installed with netinstall so I just configure network and repositories with it :p
vim is good for short config files but when you need to work on some big project emacs is a must
I've tried to get into emacs a few times but always go back to vi/m; it's just too ingrained. As for using vi/m on larger projects, I used it on every single paper I wrote in grad school and my master thesis. Vi/m adapts well from coding to prose. I'm going to try once more with emacs later this year but I'm not sure it'll go well. 
Add a comment...