- Alejandro's Eclectic Newsletter
- Posts
- EN 72: "Vim body mind connection"
EN 72: "Vim body mind connection"
Learning Vim is like any other skill. It takes time to build up the reps and integrate it. I’m working on it, slowly, and have managed to use it daily at work with the NeoVim plugin in Visual Studio Code.
Akin to when somebody learns a new language, and have to stop to think what they want to say or look for the right words, I stop for a second to think about the next action, how to modify the text, how to reach a certain word, or how I could’ve done the action better. The body mind connection is not smooth yet. Based on what veterans say, you get to a point where you don’t have to be conscious all the time about every little detail, it becomes natural, unconscious, and you edit text at the speed of thought.
Interestingly, the more I practice, the more I notice when I can’t use it to move around text, instead having to use the mouse or the arrow keys, or edit, and the clunkiness of it all. I wanted to jump to a word quickly, or change a block of text, but had no tools to do it efficiently. I’m not at the level where I want to have Vim everywhere, but certainly I can appreciate why somebody would want to use it if there’s heavy text editing. All in all, I’m not saying you can’t be fast without Vim, Emacs or any other tool, I was decently fast without any of them.
The allure of a tool like Vim is that it has a mental model, a language, that is made to edit text efficiently and that is consistent. When you learn the model, you can construct “phrases” and combine actions, a bit like a domain-specific language. There are a few things that irk me about the model though, like the order of “combinations”—Vim follows an action → selection model, e.g. change word, but there are times when I think selection → action (e.g. word change) makes more sense—and I wonder what a “modern” Vim would look like, without the constraints of computers in 1991. Helix, for example, looks interesting, although it has the issues of new things: lack of wide adoption.
Since I just mentioned constraints, there’s a good point here: constraints add boundaries and set the conditions for success. Constraints also unleash creativity to come up with novel solutions. Although sometimes the solutions can be awkward. In the opposite side, if you have little to no constraints (e.g lots of time and money, no expectations) things can go awry.
For a fascinating article about the origins of vi and its constraints, see Bill Joy's greatest gift to man – the vi editor. I find stories like these extremely interesting and reminders that every product is built within the constraints of its time.
[…] you've got to remember that I was trying to make it usable over a 300 baud modem. That's also the reason you have all these funny commands. It just barely worked to use a screen editor over a modem. It was just barely fast enough. A 1200 baud modem was an upgrade. 1200 baud now is pretty slow.
9600 baud is faster than you can read. 1200 baud is way slower. So the editor was optimized so that you could edit and feel productive when it was painting slower than you could think. Now that computers are so much faster than you can think, nobody understands this anymore.
Interesting links
Lithium-Ion Batteries Have Gone Too Far (Ian Bogost)
The resource utilization trap (Henrik Kniberg). Great short video showing why resource utilization is a trap.
What Companies Still Get Wrong About Layoffs (Sandra J. Sucher and Marilyn Morgan Westner)
Reply