I was a Vim exclusive for several years before shifting cold turkey to emacs on the 01/01/2012 (first new year resolution I keep in my life!). My impression is still the same as day one: I will never reach the same <i>raw</i> speeds in emacs as I used to (and still do) in Vim, but I've never had as much fun exploring the inner workings of any system as I have with emacs.<p>The functions described in the article are crucial. You should rewire your brain to type them every time you ask yourself a question.<p>Generally speaking, Unix is very good at self documenting. Whether it's text editors (vim/emacs), shells (bash, zsh, ksh) or just plain man pages (did I mention the <i>info</i> pages for GNU tools?), the systems are great at holding their own full documentations.<p>I cannot recommend enough adopting the reflex of checking the local documentation before opening your web browser and hitting Google.
This is one of the huge reasons I'm still an emacs user in the face of so many IDEs. Until you've used emacs for a while you don't realize that emacs was built in emacs and has great tools like the ones described in the article to poke around its innards.<p>Writing emacs lisp in emacs is a joy because it's so easy to drill down when things don't work and figure out exactly what is going on.
An extended tutorial using Emacs's self-documentation:
<a href="http://david.rothlis.net/emacs/howtolearn.html" rel="nofollow">http://david.rothlis.net/emacs/howtolearn.html</a><p>Random testimonial: «The guide has been extremely helpful and without it, I wouldn't be making the switch from vim. I particularly like that you present just enough information about various tools that I can use them productively, while referring to the excellent built-in docs. A lot of the programmer-critical tools have good documentation, but no "here's the bare minimum you need to know not to go back to your more comfortable environment" guides.»
The features that make Emacs self-documenting are superbly done.<p>I wish other software systems emulated them.<p>Another example: if you write "(funcall " (or if the insertion point happens to be an existing call to "funcall") and then hit C-h f, Emacs prompts you with "Describe function (default funcall)".
If "funcall" is the function you wanted documentation about, you do not have to write out "funcall" again -- you just hit enter at the prompt.
How Emacs changed my life by "matz"<p><a href="http://www.slideshare.net/yukihiro_matz/how-emacs-changed-my-life" rel="nofollow">http://www.slideshare.net/yukihiro_matz/how-emacs-changed-my...</a>
C-h k C-h k gives me:
C-h k runs the command describe-key, which is an interactive compiled
Lisp function.<p>It is bound to C-h k, <f1> k, <help> k, <menu-bar> <help-menu>
<describe> <describe-key-1>.<p>I have no link to the source file. I am running version 23.1.1
Serious question: If you switched from Vim to Emacs, and are happy with it, how fast/slow are you in Emacs for pure text manipulation (moving lines, changing text within quotes, joining lines, etc)?
Emacs' help system is fantastic and is one of my favorite things about it. But I had no idea you can navigate to the C source code too. That makes me so happy. :D