In emacs, the only missing part is that perhaps nobody has already written the elisp that makes it do whatever task you are asking for.
emacs is a smallish program written mostly in C that defers to a scripting language for nearly everything, and it ships a bunch of code in that scripting language that does all the work of being an editor. You can look at that code using the editor itself, and you can change that code using the editor itself. It's insanely flexible and extensible; see e.g. advice [0], and most modules provide meaningful hooks for you to add your own code.
All the IDE/editor behavior is just code. If it's compiled and baked into your IDE, fixed, unchanging, then if there is any behavior you don't like, you better hope the dev included a knob that lets you tweak it, or you have a lot higher barrier to making your editor work the way you want it to.
[0] https://www.gnu.org/software/emacs/manual/html_node/elisp/Ad...
but, if what you're working on is not common, maybe there isn't a (good) IDE either.
Spending a few hours to configure it to your liking. In fact if you start atom and wait 6 seconds for it to start just once a day then twice wait 3 seconds for a new window you will in the same time frame have waited 8 hours for atom to start.
There are some really giant projects where that becomes reasonable, but for me thats just not the case. And if I were going to invest time like that, I'd rather invest it into an environment which has a higher ceiling for what it can do (emacs doesnt provide fast/rich/easy autocomplete, for example)
Hilarious. Emacs is one of the most successful programs of all time in my book. If I ever made an editor I'd pray every night that it'd be at least half as successful as Emacs.
Also, emacs is one of the most successful text editors so I'm not sure I get your comparison.
Also, surely it's not that hard to switch languages? In my experience all languages are essentially the same.
That's the problem: you don't seem to have enough experience.
So as far as actually talking about my point goes, what exactly am I missing? There are small differences but I've never seen a language that I couldn't get up and going in over the course of a week.
How much experience do you think I have? I've used plenty of languages, and I'm well aware that there are nuances.
That's because you either used the languages superficially, or use only very similar languages, probably of the Algol family (e.g. Ruby, Python, PHP, JS, etc).
You won't get very far with Haskell "over the course of a week". Or APL. Or Idris. Or Erlang. Or Lisp -- or any other language that's not a mere Algol derivative with some different bells and whistles. And even those have their idioms, of course, that one needs much more than a week to get competent with, but, it gets worse when we expand languages to not be "mainstream Algol derivatives". One would only be using languages like Smalltalk, OcamL, Scheme, Scala, Self, etc, superficially without getting into their idioms and nuance, which wont happen in a week (and can take years to really master).
Well, if you can only include "interchangeable languages" then it's not an observation but a tautology.
Based on the fact that you think all programming languages are essentially the same. That's just a ridiculous claim and it immediately exposes you as someone who's only used a couple of Algol derivatives.
1. I don't think literally all programming languages are the same
2. I have used Haskell, and am very aware of every language listed in the other replies to this comment, so you're completely wrong.
I kind of thought this community was better than this, to be honest.
Try saying silly things on reddit and watch the hate flow in.
E.g. "most of algol-derived languages are quite similar, aside from small differences in syntax and feature set".
Or:
"Most modern mainstream languages, etc have pretty much similar feature sets and syntax (while still differing in being dynamic vs statically typed etc)"
That's not the same as what you said.
You don't really want to implement all of that in VIM because your work won't be portable.
Have you seen a really seasoned vim user work? Purely from an efficiency point of view, vim/modal text editing is simply better than traditional text editors.
This seems destined to go the way of emacs. This is always what happens when an idealistic perspective wins out over a practical one in a development team.