Or, if you like vi(m), evil mode [2] should be good to go.
[1] https://ergoemacs.github.io/
[2] https://github.com/emacs-evil/evil