GNU Emacs is a useful option for developers who enjoy building their own editing environment. Start with the tutorial and one language mode, then learn how to inspect a command before rebinding it. Start with a small, representative task so you can check the results before extending the setup.
Separate personal configuration from project files and add packages one at a time to keep startup problems understandable. Consider the practical trade-off: substantial learning curve.