Emacs is the backbone of my workflow. Emacs is superficially a text editor. But its fundamental design means it can be used almost like an operating system. At its core Emacs is seemingly infinitely extensible. Of course, I write code in Emacs–Stata, R, SAS, Gauss, Perl, Python, and cypher. And I run code in Emacs–mostly just R. I also use Emacs to organize my projects, manage my to do lists and track my agenda through org mode. Everything I write, including this blog post, is in org mode. I create and compile LaTeX documents in Emacs. I read email and RSS feeds in Emacs via Gnus, and I link specific emails in Gnus with specific tasks in org mode. I even manage files and directories within Emacs.
My choice to use Emacs was, like so many things in life, serendipitous. I was a junior at BYU when I first became a research assistant. It was 1997, and the department’s statistical software–SAS and Stata–was running on a UNIX server. Karl Diether, my fellow RA, taught me how to ssh into the server, use Emacs to write my SAS and Do files, and submit them to run on the server, all at the command line on Windows computers in the computer lab. A few years later at MIT I was happy to discover the ubiquity of UNIX machines on campus, each one providing ready access to Emacs.
Emacs is a perfect “no distractions” environment in which to work. I turn off the menu bar and use a Zenburn theme. The font is a basic, fixed-width font. Emacs is a mouse-free environment; no pointing and clicking, ever. Arrow keys are anathema to the Emacs user. All commands are keyboard driven, preferably without leaving the home row. I move effortlessly across and within documents. All of which means I can type; move the cursor by word, sentence, or paragraph; revise; cut (kill); and paste (yank) without moving my hands more than a few millimeters. All of which really helps to maintain my flow of thought.