Or I can code to within 95% of the speed of a Vim expert in any other editor and my skills are transferrable to almost any platform. And, as is always mentioned and then always brushed off by the Vim avout, code manipulation/editing is almost never the bottleneck for anything but the most trivial of problems.
Since we’re not typists, of course the speed of text input is not the bottleneck, but thinking, getting motivated, etc.
But that’s not what Vim is (only) about. Editing text with Vim a pleasurable experience unlike any other. See the parent’s comment on that as well.
It is, however, the steepest wall I’ve had to climb usability wise. Probably akin to Blender, where everything is different from what you would expect at first, but, hopefully, for a good reason.
People use vim for purposes other than code editing. Being able to think about a document in terms of it's logical structure is often beneficial, may that be the structure of a sentence in prose or fields of a record in a CSV file.
If you are only developing software, vim isn't the best program for the job. By default, it is missing important features of an IDE. Customizing it to fill those gaps is difficult. Yet if you're working of different types of text files, the skills that you learn in one domain are transferrable to another domain. If you are proficient at editing documentation and data files in vim, you're probably going to prefer it for editing code since you are building upon pre-existing skills.
It's not all about speed. Vim keybindings match more closely to how I reason about code(such as replacing text within brackets. Using a mouse is a distraction from cognitive flow.
I spend most of my time in JetBrains' IDEs and never have to use the mouse, it's fully keyboard-driven. While there's no direct alternative to ci(, you can select everything inside the brackets with a single key press and then start typing. Unlike text editors (like vim), it actually understands your code and lets you operate on the underlying AST (for example, you can move code blocks, expressions, or whole functions around with a single key combo). So for me vim seems like a downgrade.
> It's just simple arithmetic. If you spend more time hammering out code, then in order to keep up, you need to spend less time doing something else.
> But when it comes to programming, there are only so many things you can sacrifice! You can cut down on your documentation. You can cut down on commenting your code. You can cut down on email conversations and participation in online discussions, preferring group discussions and hallway conversations.
A great snippet of a Yegge article from 2008. I don't even use Vim, but your mindset seems pretty toxic and it's unlikely that your 95% is actually 95% when all of the sacrifices you have to make are taken into account.