&gt;  The time devoted to all things outside of typing code dwarfs any gains had by counting keystrokes with vim. It&#x27;s an illusion of the first order.<p>Editors are, or should be, the sole tool necessary to sculpt a system.  Using poor languages, yes, there&#x27;s a lot of ritual outside of coding which is necessary. With powerful languages, the design is the code and the code is the design and it all lives within an editor.<p>The editor is the interface to the documentation; it&#x27;s the interface to the running system; it&#x27;s an interface to the debugger; it&#x27;s the interface to the <i>world</i>.<p>&gt; Because if you are popping between Verilog and Python with a range of other languages across server, desktop and embedded while using multiple tools and IDE&#x27;s you start valuing tools that can help you context switch. And, no, I do not want to waste time messing with source for the two dozen tools we use on a regular basis. And, no, in this context vim has no real measurable value whatsoever.<p>Which is why I use emacs, which is able to provide a seamless interface between server, desktop, laptop and embedded environments, in which context switching simply doesn&#x27;t have to be necessary. Emacs provides a whole heck of a lot more than vim. Vim is a powerful editor; emacs is an ultra-powerful environment.<p>Yes, it&#x27;s also important to have large monitors, lots of memory and a great work environment. And kudos to you (honestly) for providing that.<p>&gt; We are knowledge workers, which automatically means we spend far more time on things other than typing code.<p>Which is why I use a tool which enables me to work with units of knowledge, not just letters and symbols.