I switched to emacs for similar reasons (plus the fact that it supported embedded repls that actually worked). But eventually switched to neovim, because it could do things like completion and repls. vim 8 can now as well.
> I try VS Code every now and then, but I always stop because of two reasons: incomplete vi(m) emulation and the latency feels really bad compared to Emacs/vi.
> Would like to switch otherwise, but non-leaky vi support and good latency are essentials.
Same. Also start-up time. I love typing `v <filename>` in a terminal and instantly getting an editor. Lower memory usage is also nice.
- evil for vi emulation
- general/which-key so I could define spacemacs-like bindings that start with SPC.
- ivy for quick search of buffers, files, etc
Then I added things on a by-need basis. I would say that the most important additions were magit for Git, projectile for quickly switching between project files, and some Rust packages.
This is now my emacs configuration:
https://github.com/danieldk/nix-home/blob/master/cfg/emacs.n...
Rust configuration:
https://github.com/danieldk/nix-home/blob/master/cfg/rust.ni...
(Sorry for posting Nix files, but it's pretty close to what it would look like in a regular init.el.)
I try VS Code every now and then, but I always stop because of two reasons: incomplete vi(m) emulation and the latency feels really bad compared to Emacs/vi.
Would like to switch otherwise, but non-leaky vi support and good latency are essentials.
Edit, forgot to add: something as good and keyboard-driven as magit.