Published
- 3 min read
Input Methods
The Speed of Thought
There is a bottleneck in software development.
It is not the CPU or the network. Instead, it is the connection between your brain and the screen.
You have a complex thought structure in your head - a refactoring of three classes, a movement of logic from A to B, a renaming of a variable that implies a semantic shift. To execute this thought, you have to drag a mouse, click a file, find a line, highlight text, press Backspace, type new text, move the mouse again. I, as a superior user of the keyboard, instead spend 3 hours finding the write combination of 7 keypresses to perform the same action.
Vim (Emacs)
Vim is not an editor. Vim is a language.
When you learn Vim, you aren’t learning “shortcuts.” Ctrl+C is a shortcut. dw (Delete Word) is a sentence.
ci" (Change Inside Quotes) is a command.
vap (Visually Select Around Paragraph) is a descriptor.
Once you speak this language, editing text feels less like typing and more like surgery. You don’t “backspace until the word is gone.” You simply “delete word.” The thought maps directly to the action. Or so I’m told by those who are competent at it. They don’t look at the keyboard. They don’t touch the mouse. They stare at the code, and the code changes as they think it.
It creates a “Flow State” that is (as I’m told because, once again, I’m not good at it) addictive. Returning to a normal editor feels like trying to write a novel while wearing boxing gloves.
Emacs (Vim)
Vim is about editing text. Emacs is about living in text.
Emacs (specifically org-mode) breaks down the barrier between “code,” “notes,” “agenda,” and “terminal.” Use org-babel, and my notes become code. I can execute SQL queries inside my documentation. I can run Python scripts inside my project management board.
People joke that “Emacs is a great OS, lacking only a decent text editor.” (Which is false, because I use Evil Mode to get Vim bindings inside Emacs).
But the power of Emacs is its extensibility. It is a Lisp interpreter that happens to display text, so you can rewrite the editor while you are using it. Pretty nifty.
War?
I’ve been getting into the lore recently after my start with doom emacs, which really means I’ve been cheating all along.
I guess the point isn’t that you must use Vim or Emacs, but rather that if you spend 8 hours a day typing into a box, you should be the master of that box. Because when the friction disappears, all that is left is the creative act. The sense of freedom and ease that comes with mastery is something I hope to attain one day, and I’m getting there (with cursor and claude code, obviously).