The Tools We Use
Over at Hacker News, there’s an Ask HN about learning Vim in this day and age. I believe a lot of the people that write here on Bear are technical in nature so Vim may be a common term but, for those who don’t, Vim is a text editor, a text editor with a large learning curve to become efficient at. The comments on the Ask HN range from but of course you should learn it to why the hell would you learn some esoteric tool? The comments are good and thoughtful and are interesting to read but if the original asker thinks they’ll come away with a definitive answer, I think they’ll probably have more questions than answers.
I’ve been a Vim user for almost a decade now. Back when I started using Vim, I was working at a start-up in Boston where I was the second or third technical hire (job was offered to my coworker before me but I accepted before them…we started on the same day). We had been working hard on our app for a year, we got traction, we started hiring people to handle servers and hardware and a bunch of low level programming. I was sitting in a conference room with one of the new guys we hired who was working on hardware and his laptop was connected to the big screen in there. We were working together on something, a way to communicate between the button a user clicked in our web app sending messages to tiny antenna controllers in a server array. He pulled up the code in the terminal, started cutting entire lines of code and inserting them elsewhere, bouncing from one line of text to another a couple of hundred lines below, and he never touched his trackpad. I was astonished and when I asked what he was using, he said Vim.
At that point, I wanted to work as fast. I wanted to be that cool. I wanted to have others see my skill as awe inspiring. But mostly, I wanted to move in the direction of being that skilled with my tools. I spend the next few months bouncing back and forth between Sublime Text and Vim. Eventually, I got to a place where I have built my .vimrc to my liking, remapped
My father was a machinist for a number of years before he went into management. As a child, I remember his tool box, which is now up in my attic. The tools he bought and cared for had the sheen of being touched again and again, dings and nicks from other tools and circumstances. He bought high quality tools, from long lasting manufacturers, that would endure and he knew how each one worked down to the most minute detail. When it was time to switch jobs, he took his toolbox with him. And it was always so cool when he used an item in that box for a household repair or when trying to show me real world application of some math problem I was having trouble with in middle school.
We are in the same boat as my father as programmers: we have a job to do that requires tools and those tools are not dependent on where we work. We use those tools constantly and makes up the bulk of our day to day. Why wouldn’t we spend the time to get to know our tools and get to know them well? In my opinion, there are too many dependencies on the tools and programs we use. We have linters and formatters, plugins and extensions, shiny new bits and bobbles. There will always be something new. I get excited for that. I use VSCodium often now because of all the new and fancy things. But, unfortunately, I have to use the Vim keybindings with my mappings and I find myself still dropping into Vim when I want to be more efficient (why is it I can’t use Vim keybindings in VSCodium to shift focus from one split screen to another?).
I know this post is a bit meandering and not fully formed. The Hacker News post got me thinking about my past and the tools I have chosen. I use Vim, run Arch Linux with i3, have made the keyboard my home. I tend to use the mouse less than most of my coworkers. With almost twenty years in tech behind me, I know I also started using Vim and Linux as a way to be taken seriously as a programmer (being a woman in tech can still be problematic but a decade ago? Well, let’s say I have a few stories). Knowing Vim gave me a certain cachet and when I was trying to make my way up the career ladder, that helped quite a lot.