When I started using Emacs, I had grandiose notions of producing copious amounts of prose, linking it together in all sorts of interesting and helpful ways, and basically revolutionizing the way I experienced computers. But most of all, I had a new and urgent desire to do everything from the keyboard in a blazingly efficient manner.
I proceeded to burn the Emacs keybindings into my brain and fingers. I developed some slightly inefficient workflows (copying and pasting from text documents into OpenOffice documents, editing the original text file based on whatever page length I was going for, rinse and repeat until paper is produced) that were, on the whole, a net gain due to the speed of typing without mousing. The linux filesystem positively danced under my fingertips. I had more control over my system than I had ever had on Windows.
I progressed to producing documents and drafts in LaTeX. While it’s a bit arcane, using Emacs with AUCTeX made writing LaTeX arguably faster (and certainly prettier) than writing in Microsoft Word. My long-held desire, though, was to learn a programming language (I chose python) and code my own Content Management System. Events in meatspace have conspired against me acheiving that goal up to this point; now I am making progress. I can’t imagine working in any other editor. Oh wait: I can. I switched to vim for four months earlier this year.
You heard me: I tried vim. My main motivation was a bout of Emacs Pinky. My left pinky occasionally gets sore if I spend too much time on the laptop. At the time I attributed it to the control sequences that Emacs uses, but now I’m more aware that it’s just that my laptop has an inelegant and potentially harmful keyboard. If I use an ergonomic keyboard with Emacs, I’m fine.
Vim was fine. It’s a great text editor. If you want a powerful text editor, your two choices are vim and Emacs, and though I prefer Emacs, I won’t fault you for choosing vim. It does some fantabulous things. You can script it in python, for example. But scripting vim in python feels a lot like scripting Emacs in python; there’s a lot of cruft, and it doesn’t play well with the innards of the system like elisp does. And there were all these little things that I missed.
I’m evolving into the type of person who tries to do as much as possible inside Emacs. Here’s a partial list of how I use it now: