zet

Vim is a Text Editor. Emacs and VSCode are IDEs

I was tempted to look at additional completion options (for ten minutes today) because I do like a good tab complete on pretty much all the things, so why not editing. But I was quickly reminded that Vim is a text editor, not an Individual Development Environment (IDE). If you want that, you want Emacs or VSCode. In fact, that is my best distinction between them from now one. “Emacs is an IDE. Vi is a text editor.”

Some people like to use typewriters to write novels. Some like word processors. Some write them by hand. They really are tools that work in conjunction with other tools to produce equivalent levels of efficiency for different working styles. Vim and Emacs and VSCode are sort of the same thing. Vim + solid bash scripting skills makes up for it not being an IDE. All the IDE sugar is contained modularly in filter scripts (not even plugins).

For me, just having a fast text editor that works everywhere has always been my priority. If I really need an IDE I tend to like things like VSCode and Goland for that, but I normally do not need such things. Am I slower than other full-time developers? Yes. Most definitely. But I’m much faster than them at everything else that involves the terminal, systems administration, and research, that’s right, research.

Lightning fast, on-demand research will always be better than shit like “Intellisense.” I can find answers from a new TMUX window and lynx terminal browser query in literally seconds and pull up all the examples and dialog that accompany a particular topic as well. This is far more useful than some annoying prompt for how something is named. When (and if) I need that I am trying to start using Ctrl-xo from Vim insert mode.

I’ve been reminded as well (from \@qmacro on Twitch) that Intellisense can actually work against beginners because all that completion prevents them from learning it. I have noticed that when I use shortcuts a lot I start to forget how to actually do the thing. (This happens to people who wrap up git commands in scripts and aliases as well.)