Which is better: Emacs or VI / VIM? After 40 years as a professional software developer working with both products, I'm happy to finally be able to present t...
I used Vim at first, for a long time, then Emacs since a couple of years.
Since Emacs can essentially “contain” Vim (by using evil-mode and so on), and still offer much more flexibility, power and extensibility than Vim does, the answer is kind of clear: Emacs is much more powerful, but (to be fair) also more work up-front to learn and “get into”. Plus it has many bad (historic) defaults that need reconfiguring, which also increases the up-front work. For some, this additional workload is too much, and that’s fair.
If you’re completely new to any of this, I’d suggest going this route: learn/use Vim first for a couple of months or even years. Vim is great, you might even just stick with it. It’s also ubiquitous, it’s available everywhere, so it’s good tool knowledge to have. Learning its basics is no wasted time and it introduces you to powerful keyboard-driven modal editing.
Then, when you want more power/flexibility/extensibility, you’re ready to use Emacs with evil-mode. You’ll continue editing text like you did in Vim, but you have all this added stuff on top.
Doom Emacs is a nice distribution of Emacs which also sets up a lot more for you, making the initial configuration less work, and it also uses evil-mode (Vim emulation layer) by default.
Evil-mode also isn’t some badly implemented crutch. It’s really powerful, feels just like Vim and I haven’t noticed any Vim feature I’m missing.
If you don’t like Vim, you can use Emacs with a different editing style, e.g. its original keybindings, but they have rather poor ergonomics and probably require several individual key rebindings or you’ll at some point get RSI problems due to weird finger movement/positionings all the time.
If you don’t like Vim and Emacs in general, there’s the VSCode route for you, but that’s a Microsoft-steered open source project including telemetry, and if you use a fork like VSCodium, thinking that you’ll have outsmarted MS, you didn’t actually, because there are VSCode extensions which you now can’t use anymore because they require the ORIGINAL VSCode. So there is kind of a dependency trap. Plus you can never tell when MS starts making VSCode worse, like they do with Windows these days. Best avoid it altogether, to avoid any risks related to its data and profit-hungry megacorp behind it. Mature open source projects like Emacs have been basically the same rock in the sea since ~35 years or so, they are dependable and will still work the way you want them to work when everything else goes to sh*t.
I used Vim at first, for a long time, then Emacs since a couple of years. Since Emacs can essentially “contain” Vim (by using evil-mode and so on), and still offer much more flexibility, power and extensibility than Vim does, the answer is kind of clear: Emacs is much more powerful, but (to be fair) also more work up-front to learn and “get into”. Plus it has many bad (historic) defaults that need reconfiguring, which also increases the up-front work. For some, this additional workload is too much, and that’s fair.
If you’re completely new to any of this, I’d suggest going this route: learn/use Vim first for a couple of months or even years. Vim is great, you might even just stick with it. It’s also ubiquitous, it’s available everywhere, so it’s good tool knowledge to have. Learning its basics is no wasted time and it introduces you to powerful keyboard-driven modal editing. Then, when you want more power/flexibility/extensibility, you’re ready to use Emacs with evil-mode. You’ll continue editing text like you did in Vim, but you have all this added stuff on top. Doom Emacs is a nice distribution of Emacs which also sets up a lot more for you, making the initial configuration less work, and it also uses evil-mode (Vim emulation layer) by default. Evil-mode also isn’t some badly implemented crutch. It’s really powerful, feels just like Vim and I haven’t noticed any Vim feature I’m missing.
If you don’t like Vim, you can use Emacs with a different editing style, e.g. its original keybindings, but they have rather poor ergonomics and probably require several individual key rebindings or you’ll at some point get RSI problems due to weird finger movement/positionings all the time.
If you don’t like Vim and Emacs in general, there’s the VSCode route for you, but that’s a Microsoft-steered open source project including telemetry, and if you use a fork like VSCodium, thinking that you’ll have outsmarted MS, you didn’t actually, because there are VSCode extensions which you now can’t use anymore because they require the ORIGINAL VSCode. So there is kind of a dependency trap. Plus you can never tell when MS starts making VSCode worse, like they do with Windows these days. Best avoid it altogether, to avoid any risks related to its data and profit-hungry megacorp behind it. Mature open source projects like Emacs have been basically the same rock in the sea since ~35 years or so, they are dependable and will still work the way you want them to work when everything else goes to sh*t.