I use emacs, and won't be switching to Vim anytime soon, but I'd like to say thanks for writing what seems like a really good book and releasing it for free.
Not at all. That's the Emacs crash course: How do you move by charcters/words/lines/sentences/paragraphs/function definitions/..., how do you open/save files, what does 'C-x M-c butterfly' mean, how do you browse the main help system, etc. It probably takes about half an hour to go through.
Emacs is largely self-documenting, but since it was written decades (and several OSs) ago, it's IMHO worth reading through the basics. For one thing, it tends to use different terminology than most people are familiar with.
Vim seems to add a lot of things you would rather expect from emacs (great extensibility) and emacs of course has always been able to emulate vi keybindings.
What are the major differences in functionality between the two?
Even with all it's features, Vim's direction has always been as a pure text editor. Plugins focus on making editing better, new features help with multiple windows, making modes easier, etc.
Emacs is really a platform who's main use is a text editor. The programming tools are stronger, and it has a few more interactive options when making extensions. This allows developers to create news readers, email clients, web browsers all inside emacs. Much of that could potentially be possible in Vim, but it would require shelling out, and would have a nasty interface in general.
Emacs is a Lisp virtual machine, and tends to act more like an integrated environment, while vi(m) is a text editor with less intrinsic extensibility.
Also, Emacs's default keybindings (both in the main system and virtually every mode people write for it, out of tradition) tend to use quite a bit of modifier keys (e.g. you are frequently typing with control held down), which can be hard on your hands. Vi clearly wins in this regard.
The key thing being Vim's "modes". Vim users spend most of their time in normal mode navigating and doing some editing. Insert mode is for actually typing characters into the document.
Right. Emacs modes are more context-oriented ("I'm editing XML, so give me navigation commands that natively understand that syntax") while vi modes are operation-oriented (either inserting/appending or navigating/editing). In the vi sense, Emacs is always in both modes, so you need to press modifier keys to categorize actions (and if you're unlucky, you may find yourself gradually growing crab claws for pinkies).
There's an editor synthesis waiting to happen, but decades of old elisp means there's a lot of inertia for new editors to overcome.
The difference I was trying to point out is that Emacs is always in "insert mode" in the vi sense. In vi normal mode, many commands don't require modifier keys.
Vim has syntax-aware navigation, too. And what Emacs calls "modes", Vim calls syntax/filetype plugins.
Pretty much the first thing I do these days is swap Caps Lock and Control on my keyboard layout. Emacs is the reason I started doing this, now I wonder how I ever lived without it.
On long days at work, sometimes my pinky will start to ache from holding down control while typing. It's definitely better than leaving Ctrl at the bottom left, but I'm considering remapping the left Alt to Ctrl so I can type it with my thumb. (No other RSI symptoms, and I'd like to keep it that way.)
I don't have a Kinesis keyboard, but I read that their modifier keys (along with space, Enter, and backspace) are all at the thumbs, and that seems like a really good idea.
What I really like about emacs is extensibility in Lisp. I used vim until I wanted to be able to hack my editor. I have absolutely no desire to learn vimscript, a language useful solely for hacking vim. Lisp, on the other hand, is actually a real language.
The world needs more of this.