I started Vim several years ago. My first deliberate learning came one random day when I had some free time and had recently learnt that Vim tutor exists.
I completed the exercises. The idea of using a keyboard to do complicated editor actions - things like skipping through the start and end of English words, going to the beginning and end of lines, skipping to the next empty line - felt powerful. I have since then, through recommendations, been a full Neovim user. I would hate being in a world that doesn’t have Vim navigation. I felt compelled to install Vimium in the browser too.
I have however also been bad at keeping up with all the extensions. I don’t want to concern myself with what treesitter does and what extension I need to lookup the signature of a function. For over 2 years, I used a Neovim with only syntax highlighting and nvim-tree as my primary editor. I would use third-party tools from the terminal for any checks. This put me at a disadvantage and I realised this when I looked at the workflows of my friends.
About 5 months ago, I made the switch to VSCode with all the important extensions. I started using the mouse too often. I was using Copilot’s Chat, inspecting the function signature when writing code, a shortcut for auto-formatting on close, and vim mode of course.
I convinced myself to like it, and for a while I really did. I could do so much more with my editor. I definitely was hopping around different files less. I found the codebase-wide grep with ctrl+shift+F too useful. I did not have (or know?) that in Neovim. Yet, everytime I moved my hand to use the mouse, and everytime it was stuck, I got the feeling that isn’t made for me. It didn’t take my personality into account. I felt distant. The Vim mode was not enough. Me setting keybindings was not enough. The final blow came when I moved houses and had a new desk setup. I did not have a mouse yet and had elevated my laptop. It was too inconvenient to use the touchpad. Around the same time, I was also being frustrated regularly with VSCode being stuck. That was probably some extension that was using too much compute. In any case, and as you might guess by now, I am too lazy to find out. It’s easier to go back to Neovim.
This time, I installed LunarVim - a project that comes with all the extensions installed. The transition from a vanilla Neovim to VSCode to a fully-setup Neovim gave me so much more context on what the extensions are doing. I am still unwilling to dig into the specific extensions, but I am more aware of the kind of workflow that would make me faster. I loved LunarVim. I loved being back at the terminal to write in Vim. I love not needing to use my mouse.
I got the feeling that I was at home. I’m not switching back to VSCode now. This is good. I’m adding more extensions. I’ll read up a bit on the extensions (I’ll hesitate before I do that, only not as much as before). This is good!