I'm as guilty as anyone of going deep on various editors and really getting into the weeds of editor automation, configuration, and learning obscure hotkeys and commands. Vim and emacs in particular are great for this. But after many years of programming, I've become really skeptical of the value of this approach. The amount of time I spend actually typing in code is utterly dwarfed by the amount of time I spend thinking about what code should be typed in. Spending lots of time memorizing editor-specific key sequences to save a keystroke here and there is starting to look more and more like an illusion of efficiency, or possibly a net loss if it means constantly having to reach for refcards or struggling with an illusion of inefficiency when using other editors. It makes a lot more sense for people who really do spend more time typing code than thinking about code...I would be fascinated to see some sort of survey as to what that ratio is for programmers in general, and how it affects people's choice of tools.
There is a continuum, and there is an explore/exploit problem.
Using notepad (on Windows) has 0 up-front cost. But you are going to be frequently frustrated, you are going to frequently produce files with errors in them that you have to fix, and you are going to be frequently doing things in a repetitive way. And then you are going to have to do things differently on another platform, etc.
Using a highly configurable, plugin-rich, live-programmable editor like vim or emacs does have some up-front costs to configure and learn to use. But almost certainly not as much as you think. They LOOK absolutely terrifying, but the reality isn't so bad. (I haven't found it bad, anyway - I certainly don't keep around refcards or consciously memorize things, although that might mean I'm not taking 100% advantage of the tools or maxing out my geek score.. those just aren't my use cases).
Feeling frustrated all the time breaks up your flow and just feels bad. And yes, if you are feeling frustrated with repetition, you probably ARE wasting real time... but it's up to you whether it matters. Some people have half the productivity of others and get by fine and get paid the same.
The underlying philosophy here is: it's a programmable computer, you should be able to have it your own way. vim and emacs are the fruits of text editing being a really mature problem domain for software.
But if your philosophy is rather: I don't want to take an extra week to learn a new tool... then you are not ready and might never be ready to leap to a really strong text editor.
vim and emacs have warts. but if you know them and need their power, it will not matter much to you that (say) scribes is so much simpler and prettier, because the absence of warts doesn't make up for the massive loss of functionality.
Each of these embodies about a lifetime of very poorly compensated work; there isn't anything else like them in the pipeline, so you might wait a lifetime for something with the same functionality and fewer warts. And the problem is that others will perceive warts in the new thing and it will be a religious war just like vim vs. emacs.
Thank you. Programming is not an IO-bound problem, and if it is, you're not doing anything interesting.
vim gives you ergonomic benefits? Sure, I can believe that. Allows you to manipulate text faster? Ok. But, at least in my reality, text manipulation is a rounding error when it comes to productivity. I simply do not buy the argument that using vim improves your code, or the speed at which you can write it.
I actually do find that text manipulation can become the bottleneck in the right environment, at some points in a coding session. Vim won't make you faster while staring at a pair of empty braces thinking about the right algorithm. Vim can make you faster while rewriting a function, moving code around, or typing code that you've already thought through. And I often find that the faster I can get a thought out and stop holding as much state in my head, the faster the next idea comes.