1 Month Vim Only Challenge - Week 4 (Finale)
Tags: vim, productivity, watercooler, programming
Published: 2021-11-21 15:52:29

This is the last article in my vim miniseries.

For the last month, I've been doing a "1 Month Vim Only Challenge", where I forced myself to use vim for 1 month, both in my free time as well as at work.

In the previous articles, I was telling you about the [reasons](https://mpodlasin.com/articles/vim-challenge-kickoff) why I started the challenge in the first place. I was also [relating](https://mpodlasin.com/articles/vim-week-i) my [experiences](https://mpodlasin.com/articles/vim-weeks-ii-and-iii) while doing the challenge.

And now the challenge comes to an end, as the fourth week of using vim ends. As I've said in the first article, this means that it is time for me to make the ultimate decision:

After using vim, and vim only, for 1 month straight, do I want to go back to using a "regular" editor/IDE like VSCode? Was using vim an unbearable experience? Do I look forward to never having to press `:wq` ever again?

Or did I fall in love with vim so much that I plan to use it for the rest of my life? Does using a mouse cause nausea in me now? Do I want to keep my fingers in the home row even if my room is on fire?

Well, let's not keep you on the edge of your seat anymore. Time to give you...

### The Answer

I... I have no idea.

No, seriously. You would think that after 1 month I would be leaning strongly towards one side or another. That's what I thought back then as well.

The thing is that if you are trying to replicate - let's say - VSCode setup, vim will get you to like 90% or 95%. Meaning that it will mostly work nicely and flawlessly. But there will still be 5% to 10% of little annoyances, awkward UI/UX, or tiny bugs. Nothing major, nothing that would block you from doing the actual job done. But still enough for me to think with reverence about VSCode from time to time.

On the other hand, you *are* getting very real benefits with vim. The minimalism of the setup (my .vimrc is still tiny and I love it). How lightweight vim is. How just absurdly configurable and extendable it is. 

I guess if I were to summarise the benefits of vim in one sentence, it would be this: 

You can truly make vim your own. 

You can have two people using vim and their setup would be completely different. You could have a minimalist, distraction-free setup with only bare necessities installed. And at the same time, you could turn vim into the craziest, most robust, multiwindow IDE packed with many, many features, including your own, custom functionalities, coded in the vim scripting language.

So if I am to make a rational decision of whether I should stick to using vim, I have to answer the question do the benefits of vim outweigh for me this 5-10% of awkwardness that it has compared to VSCode.

And at this point, I really don't feel equipped to answer this question.

### It Has To Feel Natural

In the first article of the series, I wrote that the main criterion for me will be "Does coding in vim feel natural to me now?"

But this also turned out to be more difficult to answer than I initially expected.

The thing is that most of the time it does feel natural. But then you also encounter those moments when you want to do something that would be trivial in VSCode and... you realize you are using vim. You have to google for a key that does what you want. Or you have to start looking for a plugin that has the desired functionality. Or - in the most extreme cases - you realize that you have to write a little script in the vim scripting language, or at the very least copy someone's script from stack overflow.

Now, again, those moments happen relatively rarely, especially as you keep progressing in your vim journey. But they do happen nevertheless, so I cannot say that using vim is completely natural for me at this point. I still have this slight anxiety that I will start working on a task at my day job and I will have troubles, because something will turn out to be difficult, or at least awkward, in vim.

But on the other hand, most of the time I don't think about the fact that I am using vim at all. Most of the time it *is* natural. Vim's controls feel very straightforward at this point. This is ironic because controls are probably the thing that scares people the most from using vim. For me, it really wasn't an issue at all. Even with knowing just the most basic commands, you can get a lot done. And it only gets better as you continue to use the editor.

So, to summarise, even the criterium of "feeling natural" can't push me towards an ultimate decision. On some level, it feels incredibly natural, on some level it doesn't.

### So?

Well, but I have to make a decision, don't I?

Yes. And I will.

**I am sticking with vim for now.**

From what I've written so far, it is not an "unquestionable win" for vim though. I still have lots of doubts, lots of issues to solve, lots of awkward spots to go through.

I am however willing to give vim a few more weeks of a "trial period" because there was indeed lots of stuff that vim impressed me with.

So I'll continue to use it, but not in a "challenge" mode anymore. If I encounter any issues that stop me from doing actual work or slow me down considerably, I will not be afraid to reinstall VSCode. It's important to note that VSCode does have an extension allowing you to use vim controls. So I might go in this direction at some point.

Turning "using vim" into a challenge was a great idea because otherwise, I would bail out much, much earlier.

But on the other hand, it stops me to evaluate things objectively, because I am literally forcing myself to use it. I plan now to stop forcing myself. I will just continue to use it if I feel like it. And after a few months, it will be clear if it actually won my heart over or not.

### Final Words

So this is how I am finishing my little "1 Month Vim Only Challenge" article series.

I know that this is a slightly disappointing finale, where I failed to provide you more definite answers.

But I hope that this gives you a good idea of what to expect when getting into vim.

You will likely be pleasantly surprised, but not immediately won over at the same time. Whether you decide to stick with vim will be largely dependent on your personal preferences, style of work, what kind of tooling do you need, etc.

Me personally, even though I am still not sure if I will continue to use vim forever, I definitely don't regret participating in this little challenge. It showed me how mature vim community and vim tooling are. It showed me that you are not insane if you are using vim on a daily basis. It's much closer to VSCode experience than you might initially think.

And even if I decide to go back to VSCode at some point, I always have vim knowledge and experience under my belt. And there might be some moments when it could turn out to be helpful, if not necessary. Editing stuff over ssh for example. Or if they fire me and I will have to sell my MacBook and go back to coding on my ancient ThinkPad that can barely handle running VSCode...

Anyways. I hope you enjoyed this little series and I encourage you to try the same thing on your own. You might get surprised how much you will enjoy working in vim!

Cover Photo by <a href="https://unsplash.com/@rockthechaos?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Kolleen  Gladden</a> on <a href="https://unsplash.com/s/photos/finish-line?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Unsplash</a>