Skip to content

A month of using Vim

Erica Pisani
Erica Pisani
3 min read

I've wanted to dedicate time to learning Vim for probably a decade now.

When I was just getting started as a junior developer, I remember thinking that the people who used it in their day-to-day were "so cool" and felt a bit of awe at how they achieved what they wanted so quickly without lifting their hands off of the keyboard.

Fast forward to a month ago and I decided to take the leap - I was going to try and use Vim for a solid month and if I liked it, I'd stay with it. If I didn't, I'd switch back to VS Code (which has been my go-to IDE for almost a decade).

The barriers to adopting Vim that I could see going into this:

  • steep learning curve;
  • the need for plugins for most of the things that come out-of-the-box in IDEs like VS Code or JetBrains (e.g.: editing multiple instances of a word in a file at the same time); and
  • choice paralysis because, for better or for worse, there's so many solid plugin options for solving a particular problem that it can be hard to tell for a new person what might be easier to get started with or if one tool is better suited towards a particular workflow than another.

After an initial upfront cost of spending loads of time researching, following a couple of Youtube 'initial setup' videos, reading various Reddit posts, googling "how do I do X in vim" dozens and dozens of times, and just general fumbling around, I feel like I've gotten a decent amount of the basics down.

I'm still spending a little bit of time every week tweaking things or trying to find a new plugin to achieve some functionality that I want, but it's nowhere near as overwhelming as it was at the beginning.

Things I learned

  • LazyVim is a great bootstrapped config for folks looking to just get started as quickly as possible rather than build everything from the ground up
    • If you are looking to build from the ground up, this video from the Primagean was helpful even though I ultimately ended up going with LazyVim because I wanted as close to an 'out-of-the-box' setup as I could find.
  • It does take literally weeks before it starts feeling more natural.
  • You will spend lots of time getting frustrated with how the workflow isn't what you want and spending hours looking for the right plugins to install (and then wrangling with the installation) and keymappings to set.
  • :h user-manual is a thing in Vim that covers everything. I'd been using Google to figure out how to do things (Reddit in particular was an incredibly helpful resource) and then I stumbled on this at the end of my 3rd week of learning Vim.

Am I happy with my decision to switch to Vim?

Generally, yes.

Don't get me wrong, I still find some rough edges that I need to get used to and learn how to use more effectively (or to find a plugin that addresses things for me), but the main factor that will keep me on Vim is I find that I'm far less distracted and feel calmer using Vim than I was using VS Code.

This was not something that I ever considered would happen when adopting Vim. But thinking about it, I realized that VS Code can be noisy with a standard, out-of-the-box setup.

There are notifications on the bottom right harassing me about something going wrong, some extension they suggest I install based on the language of the file I have open, and various notifications about updates being installed.

Vim has this window that shows up briefly on the top right about plugins with updates that quickly disappears, but otherwise I'm never bothered again until I reopen a new session.

So all in all - I'm currently feeling like this was worth the time investment.

I might feel differently as I start delving more into debugging workflows (VS Code's experience is admittedly pretty nice) but I imagine it's just another thing that'll take a little time to learn and configure.

vimexperimentrandom

Comments


Related Posts

Members Public

How to install nvim-ufo in LazyVim to enable foldable code blocks

A feature that I've found myself missing since making the switch to Vim as my editor of choice is the ability to easily fold and expand code blocks. I know this functionality is included in Neovim, but I couldn't understand the native implementation enough to use

How to install nvim-ufo in LazyVim to enable foldable code blocks
Members Public

Learning in public, preparing for conferences, and learning about the world of global payments

Members Public

How to install a Nerd Font on Warp

I started using Vim as my IDE of choice recently, and one of the things I wanted early on was a more visually appealing icon and font set. I kept reading about Nerd Fonts so I decided to try installing one, but the instructions for doing so were both clear