VIM tem todos esses recursos, mas tenho certeza de que emacs também os possui. Ambos existem para o Linux / Windows / OSX.
Esteja ciente de que ambos possuem um alto nível de entrada antes de você aprender a usar seus recursos. Mas vale a pena o esforço. Escolha seu veneno.