Sridhar Raj Sampath Kumar Archive

Emacs & Vim, text editors for programming?

I was recently re-reading the pragmatic programmer, and found this passage to be interesting.

We think it is better to know one editor very well, and use it for all editing tasks: code, documentation, memos, system administration, and so on. Without a single editor, you face a potential modern day Babel of confusion. You may have to use the built-in editor in each language's IDE for coding, and an all-in-one office product for documentation, and maybe a different built-in editor for sending e-mail. Even the keystrokes you use to edit command lines in the shell may be different. [4] It is difficult to be proficient in any of these environments if you have a different set of editing conventions and commands in each. Choose an editor, know it thoroughly, and use it for all editing tasks. If you use a single editor (or set of key bindings) across all text editing activities, you don't have to stop and think to accomplish text manipulation: the necessary keystrokes will be a reflex. The editor will be an extension of your hand; the keys will sing as they slice their way through text and thought. That's our goal. Make sure that the editor you choose is available on all platforms you use. Emacs, vi, CRiSP, Brief, and others are available across multiple platforms, often in both GUI and non-GUI (text screen) versions.

This book was published in the year 1999, pre-IDE age, when Java was still in 1.2. The authors think that code editing can be just like general purpose text editing. But Uncle Bob of the clean coder thinks otherwise and recommends using specific purpose IDE than using a generic editor. Kathy sierra had also upgraded from sublime to a Jet brains IDE.

Having made the progression from Eclipse(for Java) -> Sublime Text(for JS)-> WebStorm(for JS). These perspectives left me with the question.

Is mastering a text editor in 2016 worth the effort?

The whole point of being a pragmatic programmer is to use the right tool for the job. Having used eclipse for Java and using WebStorm for Nodejs, I can say that. IDEs make life easy by offering semantic refactoring, intellisense auto-complete, break point, and the whole suite of plugins for running tests, transpile code and linters. If wanting to learn different key binding for the using different language's IDE, considered to be a pain then. I think we are in different age now.

Both Vim and Emacs that the authors suggesting seem to offer something else. They offer the ability to customize key binding. This Emacs-Vim research turned out to be rabbit hole. Some even claim that real programmers use emacs

Emacs

Vi

Bill Joy created vi in 1976. Vim that we are looking here seem to be the proper super set of vi.

These two editors make you do things using keystrokes, forcing you do programming without using mouse. To truly the understand the potential of these editor one has to pick one of them and drive into it. This is what I concede after reading stack overflow answers, Hacker news comments, flame war threads relating to it. For now, I'm starting with Emacs.