How I changed my workflow to feel like a game

Brendan McDonald

Daily Tools

Editor

After nearly a decade of using text editors like Atom & Visual Studio Code, I was motivated to truly commit myself to understanding Vim after watching a co-worker fly through files faster than I could understand what was happening in front of me.

He had asked me, "What is your favorite editor and why is it Vim?". It wasn't, yet. In conjuction with that and leerob's Vim for React devs, I felt confident in powering through the struggle to become fast.

Initially, I was discouraged as I was slow, I missed my VSCode plugins, and I had project deadlines. Something happened, I got addicted; I was watching Youtubers talk about their setup, I was reading every post on r/neovim, I was learning and loving it.

A few weeks go by and I started to hit combos as if I was playing Super Smash Bros. As my productivity increased, I was driven to learn more. I dove deeper into understanding what my tools are doing, how & why they are made, and how I can make them.

I missed some of what GitLens offered as a VSCode plugin and made a barebones version so that I could open a PR from where a line of code was introduced to gain more context on it.

No more mouse

Not really but I had just gotten a Kinesis 360 and I wanted to keep my hands on the keyboard as much as possible.

I first started looking for solutions to switch between windows quickly, I ended up landing on Raycast. I use Raycast as my launcher but my primary use case is for app hotkeys & window resizing. All of a sudden, ctrl + 1 and my browser is open, ctrl + 2, my terminal, ctrl + 3 and I'm chatting with co-workers on slack.

I set up hyper + hjkl to move & resize windows, now with only one monitor & 1 desktop on macOS, I would have my terminal & browser side by side, this felt much better than my previous flow of having editor on one desktop and browser on another. As my muscle memory grew, I started to get a little too quick and a bit lost; my friend introduced me to JankyBorders. A lightweight tool that adds a colored border to your currently focused window and I've since stopped losing track of if I'm in neovim & consequently spamming jjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkk into my slack DM's.

LeaderKey

The concept of a leader is something that I was introduced to through Neovim, though not exclusive to it. It is essentially a dedicated key to create your own shortcuts without conflicting with the builtins, such as <leader>s to open my search in neovim.

A talented developer, Mikkel, brought that concept to the macOS launcher with LeaderKey. I've since configured it to launch my most common apps outside of my browser & terminal. I've my leader key set to be cmd + <space>. So pressing <leader>om will [o]pen the [m]essages app, <leader>at will toggle [A]pple's [t]heme setting & <leader>rp will display [R]aycast's confetti [p]arty. It's fun, its nerdy, its really fast.