Disclaimer: I am playing devil’s advocate. I do believe Vim makes me more efficient with some trade-off, YMMV.
We, as developers, spend a lot of our time on our text editor of choice. Choosing to use Vim, in my opinion, ultimately won't make a huge difference with any other editor. The majority of modern editors are more than capable to handle the task at hand and are much easier to get started with.
You want to use Vim? Sure. After you are vaguely familiar with it, you will dive deep into Vim's ecosystem and soon learn about the variety of flavors Vim comes in and the many ways to manage plugins and configuration. Suddenly need to code in Java? well darn, you'll need to expand your code completion, syntax highlighting, and add additional functions like compilation.
And after going through all of that, would you argue that you emerged out of it a stronger better developer? Or would you say it was all but a distraction and the time spent there could've been spent on coding and learning about other facets of programming?
I use Vim daily and I love it, but it's kind of difficult for me to recommend it because it truly is a time-sink. What the folks rave about is more about Vim-navigation and not Vim itself, and that is easily solved with Vim-mode, which is available in most editors.
So, what's your stance on the general push for vim?

Latest comments (85)
i personally don't like gui for coding, gui are very distracting to me and you need to user your mouse, that is a weak point for a developer, when you learn how to shortcut your text based editor you won't move back again..
I tried VIM and I liked it but I'd much rather stick with VSCode for now. Reason? I'm not biased and I'd love to learn VIM but right now I don't have the time. I have already a lot of things on my plate to learn.
Hopefully, in future when I move to Linux based OS I'd definitely start learning VIM along with DevOps etc.
After committing to Vim for 1+ year, I can say that although it is fast, it is not that much faster than, say, VSCode. Using vim is faster to do within-file editing, but across-file editing I find using VSCode to be faster - (I may need to optimize my vim workflow more); and that's with ripgrep and ctags and other plugins.
The cool thing about Vim is, I can work about as fast as using VSCode in places where resources are scarce or GUI is nonexistent (like VPS?) - places where VSCode can't live, I can still go fast.
So yes, not faster than other editors, but about as fast - and more versatile!
I'm not a vim user (anymore), but I use vim bindings.
For me the desirable part of vim is the modes and bindings - I hate moving from mouse to keyboard constantly and find vim bindings good for that.
Most IDEs and text editors have vim plugins that you can use, a lot of them aren't fantastic, but some work well enough.
I use vscode with the vim plugin - the best of both worlds.
I truly and objectively believe vim does make me more productive. Some other stuff not necessarily related to text editing are way more important, but since I'm willing to pass a lot of time of my life coding, investing in optimizng the text editing process is really important.
While editing text, before vim I've noticed what takes the most time is figuring out how to do what you want to do in the minimum amount of time. Vim solves that problem beautifully, at the cost of being hard to learn. It comes to a point vim makes you spend less time thinking
I feel vim is like learning a new language, it's hard at first but once you master it you don't even think about it and do everything really naturally and fast, whereas previous text editors felt like using Google translate everytime I wanted to express myself.
It really comes to this: optimizing your process to the point you don't even need think about it, it all comes naturally to do boring stuff fast. If the tool you use is impairing you from getting to that point, maybe it's time to change tools. That's what happened to me.
But text editing is just a fraction of the big picture. Planning well your code - and your day! - beforehand, knowing how to better navigate through code to find fast the information you need, improving readability and designing an architecture that allows you to make changes easily are more important, specially because it might affect the overall productivity of your team.
It is all about vim's navigation for me. I use VS with a vim emulated plug in. I loved vim editing in my browsers toxt boxes (plug in was unstable so I removed it). Sometimes wish bash had vim instead of emacs shortcuts.
VIM vs IDE is pointless, use the tool that makes you more comfortable.
A story for context. Once I met someone who uses Vim the team tried to convince him to at least use Sublime Text, then he shows us how quick he was and why he uses VIM. He likes to think everything, every line, so it suited it for him. We all think on what we code, but this guy really took her time.
On the opposite side, I use anything from Jetbrains, and I fly on it. I can create boilerplate with a shortcut or run custom cli commands.
I guess something that is never discussed is, VIM favors cli type of devs and GUIs hide favors visual type of devs.
I think every dev should learn both. I love my term I have spent hours pimping it and have done the same with my IDE's, so eventually, every dev gets rewarded by pointless tasks, but those things add up.
Personally, This video said it all...
(Thanks past me picking vim a try out of curiosity)
youtube.com/watch?v=wlR5gYd6um0
One should learn enough of ViM , so that, given a server environment one should have the same amount of productivity that one has while working on VS Code on desktop
Well rounded perspective IMHO.
I was an emacs person for 10 years before I embraced Vim. And, relative to job requirements, I used several other editors along the way (for years each) -including Eclipse, Visual Studio, and several others -all of which I used some form of 'vim mode'. Each of these editors requires a time investment. And with that said, I think your comment about Vim being "truly is a time-sink" is spot on.
Any time I've interviewed a developer or admin over the years one of the first questions I ask is: "What editor do you use?". By that question I'm not judging the answer but only that the person has an answer. Often the best candidates have been the ones who will say they have 'some' primary editor and adjust otherwise.
Nice article.