14 Jan 2024 jm

Learning to neovim is NOT easy

I am anxious to wake up and code EVERY night when I go to bed now. I’m actually excited to get back into neovim and learn more about markdown, Shopify Liquid implementation of the Jekyll framework Github recommends you use to manage your free usernamehere.github.io website, and many other technologies.

Of course that is just last nights specific iteration of what I go through. The night before my focus was on getting up and learning Lua, because from what little lua scripting I’ve already done to trick out the current build has me seeing how incredibly powerful and terse it is to accomplish things. There’s not a lot of braces and brackets getting in the way. The almighty truth, the TABLE. It is such an incredibly powerful way to take in, analyze information, and pass it right back out again. It is truly a fun experience to master. I am only currently Padiwan level in Lua mastery, but she pours her gifts of knowledge nugget abundantly when I read her documentation and the S+ tier examples for how it might apply to my goal. THE WHOLE POINT before I get all long winded, is that I go to bed excited to get back to coding on whatever I was working on the night before.

NEOVIM, is both slowing the fuck out of, and yet propelling forward that learning. (I’ll explain shortly) The way learning NEOVIM slows down my coding is making understanding of what I’m typing SO much more clear. Instead of speed regurgitating what I’m reading onto the screen, I’m FORCED to type it TRULY slowly and deliberately. One because typing mistakes while learning NEOVIM are COSTLY (it’s easy for short sets of keystrokes to do some pretty wild shit to your document). And I think it’s the reason so many people TRY it but get so wildly frustrated by the experience and rapidly retreat. But SLOWLY learning both a language close to the kernel AND a completely new method of working my way around my desktop without EVER needing (or it being faster) to use the mouse is a very enlightening journey.

And these ‘clicking’ moments are making many things in the field I only LOOSELY understood SO much easier to conceptualize now. Slowing down my typing. Learning a new language. Learning how to navigate my keyboard in a COMPLETELY new way. Laser focus on all 3 is unlocking so many powers inside me. It’s very hard to describe.

That’s it. That’s the entire goal. To learn how to move code around in my IDE in a way SO incredibly efficient, that I can get my work and ideas out into production as rapidly and free of error as humanly possible.

THE point being learning neovim and motions slowing me down has made topics sink in SO MUCH HARDER because having to type very carefully and deliberately gives concepts more time to CLICK. Make sense?

Would I recommend you skip the neovim route so you can keep using your vs-code and various jetbrains plugins that cost money and steal your data? No, I would not. Should you NOT rice out a base arch-64 install and craft a truly remarkable work and play environment if you refuse to learn vim motions? Also no. You definitely should. We welcome the dark siders who avoid vim. We understand balance. We thrive for it. But those of use who do not FEEL that balance can probably find it learning the vim motions way. If you want to really be free of that progress destroying mouse, join us.

LUL, no gate keeping here. But you will get opinions!

OH, and one more thing. Building an arch from ISO to pretty unique desktop workflow has also required MUCH slower consumption of documents. All hail Arch Wiki, which unlocked even MORE power. Then I learned about how the various layers of software took me from login prompt to beautiful desktop experience, and BOY HOWDY do things start making so much more sense out there in Enterprise Land, when you have to get so close to how things work near the operating system. It’s a vast distance between 4Gb node_modules directory after an npm install and building applications that power your ls , cat, and vim from source. Learning how things connect at the kernel level makes node_modules level concepts so much clearer.

Just goes to show ‘faster’ is not better. Slower and more deliberate focusing on your task is better.

Love, JM