@wilw emacs. It does all of that pretty much natively. I just move my .emacs (.vimrc equivalent) to the new machine and run a single command in emacs. My entire development environment is pretty much set up at that point. Maybe I'll compile emacs from source if the one in the package manager is too old.
@wilw yeah, emacs is... a lot. Its not something you can just pick up and start using and immediately be an expert in. I've been using it professionally for about four years now and I still find new stuff that I didn't know about. I'm sure there's people who've been using it for 10 or even 20 years who are in the same boat.
Fosstodon is an English speaking Mastodon instance that is open to anyone who is interested in technology; particularly free & open source software.