One functionality I find missing in all modern code editors is - repeat action. This was present and extremely useful in, now extinct, Convergent Technology OS (CTOS) resident editor. In brief, it allowed users to repeat all the actions they performed on one-line of code, on another line of code. It's amazing how productive you can be when you have that feature. This goes beyond find & replace; It also helps format code, insert, replace multiple parts of the line, etc. all with one keystroke.
This sounds like macros? Of course, the problem with macros is that you sometimes realize you should have hit "Record" only after you've completed the action.
> the problem with macros is that you sometimes realize you should have hit "Record" only after you've completed the action.
Happens to me all the time. But if using a macro was actually worth the effort in the first place, then it's probably still worth the effort to undo and record
Definitely. In fact because of that "blind actions" that Vim has, and Kakoune seems to be trying to fix, i often record macros multiple times. I'll make the macro, but the realize it doesn't fit all cases i wanted it to.
I'm not a huge fan of vim: I used vim a lot for a 1,5 year, then switched to IDE with refactoring (CodeGuide was one of the first IDE's with refactoring for Java).
When a IDE supports refactoring, e.g. it can swap order of arguments in calls to function, it helps a lot. But when the IDE does not support refactoring of language of your choice, vim can help to do a refactoring of code manually much faster. For example, I may use some shell commands to refactor bunch of js/html/css/java/sql code with single or few find and perl -pie commands, all at once. When I need to do an another refactoring, I can pickup previous refactoring command from shell history or I even can put command into script, so I will have my own refactoring tool. Regular expressions are fragile when used with code, but I can undo changes with git and repeat. They are saving lot of typing, so I prefer to spend few minutes in console than a hour in IDE. Vim has lot of commands built-in, so it's even easier to do a refactoring in Vim, but IDE's built-in refactoring is still better, when available.
Regardless, I think that the missing refactoring capabilities of code editors are only a symptom of missing command line tools for refactoring. Hell, very few languages have good open source tools for linting and static analysis which is more or less a required building block for good refactoring tools.
I'm trying to argue why Vim may be better than regular editor with my own experience, which is not strongly sided.
BTW.
I also found that when I cannot use full size keyboard, e.g. phone, tablet, or netbook, vim is usable, while regular editor is hard to use because of lack of essential keys, but I rarely use phone for development.
Atom has [0] which I use from time to time. I don't use the other two, but as far as I understand Sublime has support for macros built-in, and VS Code is still pretty young and will probably get something similar once its ecosystem grows.
I rarely use ad-hoc recorded macros. Like the author of Kakoune, I think multi-cursors feel much more natural.