I’m Dropping Vim Bindings
Graphic Editors Have Finally Caught Up
The many that know me will guffaw when they hear that I actually deleted my vim bindings from Visual Studio Code. REPL.it didn’t have them ready yet and so I did an experiment. I dropped them from VS Code as well and assessed my productivity after a week.
The results are overwhelming. No more vim bindings for me.
You have to understand. I have been using
vi as my primary editor for more than 20 years. So my conclusions are, at best, biased, and at worst, full of cognitive dissonance and confirmation bias.
But I have prided myself and changing direction and opinion when presented with overwhelming evidence and I definitely have it. Here it is.
Common Operating System Shortcuts
My biggest discovery was that all the keyboard and operating system shortcuts that universally apply to pretty much every application suddenly became valid during my editing sessions.
command-f find stuff in all my applications. No more using
/ with VI-bindings on and the other for Chrome and everything else. The same goes for replacing.
Another big example is using
command-w to close a window. With autosave on I found my incessant
ZZ and other saving was as waste of time. Instead I could just shut the window, which also works in any other application.
Other common shortcuts are cutting and pasting, a very frequent task just for links alone; inserting emojis from the special characters table; and simply scrolling up and down in the document.
Moving Sections of Text
I don’t care how good your VI skills are, you will always lose when reorganizing sections of a document. This is a task that was always pure hell to do in vi in comparison
Soft Wrapping Over Hard Wrapping
After a lot of hard reflection it has become clear the modern editing favors soft-wrapping over hard wraps. Responsiveness, even in an editor, matter.
Imaging opening up a raw Markdown file with hard wrapping at 80 characters. It is gawd-aweful ugly. Your it is just source. But that same source on any modern plain text editor will soft wrap correctly—even on
I realized this while writing CommonMark/BaseML/Markdown in VSCode with previewing on. When opening the sidebars or resizing my code would suddenly look like absolute crap because it no longer had 80 characters of width to display nicely in. After removing the auto hard wrapping it looks beautiful no matter what state my editor is in.
God bless responsive soft-wrapping.
I gotta say this was really hard for this old-school IETF RFC reader guy. I used to rant very loudly about all the stupidity and lack of responsibility of everyone using soft wrapping.
“Not everyone has a fancy editor that can do soft wrapping!”
Truth is these days everyone does, everyone.
The worst part about using VIM with hard wrapping is all the extra steps to reformat a paragraph after you have modified it. Sure it is just
gq} and yes there are extensions to do that, but unless you must do that it makes no sense. Yes, even for writing Go lang documentation, which is an absolute pain in the ass, by the way. I so wish they had been went with something like BaseML instead.
Rich Language Support, Contextual Completion, and Other Help
Even though I find these things wildly annoying for most of my development they are solid reasons to use a visual editor. Yes, VIM can do it as well, but not nearly as universally. Rich language support, as released and advocated by Microsoft (the new one, not the old Balmer one) is very encouraging. For this reason along visual editors should probably be everyone’s primary development tool. When asked to code in another language you turn on contextual help and you are spending a lot less time looking stuff up.
Age of Voice Input
I composed a six page value proposition document the other day from my Google Pixel phone while walking around the nature preserve—with my voice and thumbs, on GitHub. The age of voice input is here and VIM ain’t got no place in it.
Visual Studio Code Really Changed Everything
First let me say that before Visual Studio Code existed there were very solid reasons to keep using
vim. The main one remains if you are confined to using a terminal for your coding and configuration. Thankfully for most people that has past.
Serverless and JAMstack Emphasis
Modern software applications development is pretty synonymous with web development. Sure there is plenty of specialization out there, probably about 50% I would guess. But Electron, React Native and company really made the final transition for most “software” development into the web space. In fact, I am convinced the numbers at the Bureau of Labor and Statistics have changed based on people re-categorizing themselves.
GitHub/GitLab Integration and Hooks
With services such at Netlify all you have to do is commit from your VSCode editor and push and your code gets deployed. On Amazon you can use Cloud9 to do all your editing without ever firing up an editor on your machine. No command line needed.
This has really changed the dynamic of developer workflows everywhere.
VI and Command Line Not Dead
The command line is more important that ever in an age of devices running Linux that are getting smaller and smaller. These will always need a good editor.
However, for applications development, which you would never do on a tiny device that only had room for an
ed editor, the future is clearly light-weight code editors like VS Code.
I might even go so far as to say that learning
ed is actually more important that even
vi for such things because, for security use, getting onto a system remotely through a network hack will very likely not support the visual mode necessary for
ed is fully supported. In other words, if hacking is your thing learn
ed first and then learn
vi for fun. 😁
Visual Editors Use More Battery
Even though battery life on most laptops is no longer an issue, if you are on a 14 hour airplane flight, and don’t have a battery backup, yeah, then maybe you would do good to fire up a terminal and do you editing that way.