Disclaimer: This is a stub of a blog post.
- For the last few years, I’ve used Visual Studio Code for software and web development. I use it at work. I’ve never had big issues with it.
- A few months ago I got into watching ThePrimeagen’s videos on YouTube and became interested in trying out Vim.
- He had a video reacting to an article by Nathaniel P Maile called ‘How to get into software’. One of the steps was to use Arch Linux, because it will force you to learn how a computer and its software works. So I purchased a second-hand Lenovo ThinkCentre M920q PC and installed Arch on it. I wrote a little blog post about that here: I love my cheap little Linux box.
- So I’ve been learning a few new tools at the same time: Arch Linux, Neovim (specifically the LazyVim distribution, mostly stock settings) and tmux.
- Learning Vim motions was a struggle at the start - it took a couple of weeks for the core commands to get into my muscle memory. I’m still not that fast, but at least my typing isn’t too much slower than my thinking now!
- Learning Vim + Neovim + tmux at the same time has been slightly confusing. Knowing the difference between a Vim buffer, a window and a tmux pane is definitely confusing when you’re starting out. The LazyVim docs don’t make this much easier unfortunately! It took me a while to figure out how to move focus from the editor across to the Neo-tree sidebar, even though it’s the first keymap in the list.
- Changing from a GUI-first to a CLI-first mindset has been interesting. Rather than using your mouse to perform functions, a CLI-first mindset requires you to memorise commands and keyboard shortcuts to do those things. While that requires more investment up front, there is huge potential for efficiency to be gained. And once you gain those skills, it feels great to be able to do these things with a few key presses rather than moving and clicking your mouse. If you’re a software developer working with a computer all day long, these efficiency gains really add up. It also just feels great.