Difference between Emacs and Vim
Main difference
Emacs is a text editor on top of an extremely powerful lisp ecosystem. With vim, on needs to have a shell open. And probably many more tabs in your browser due to lack of org mode. Emacs has very intuitive key bindings, like Cn for next line, Cp for previous line, and so on. In contrast, Vim uses incredibly counter-intuitive keys like j for the next line, k for the previous line.
What is Emacs?
Emacs is a popular text editor used primarily on Unix-based systems by programmers, scientists, engineers, students, and system administrators. Emacs is for people who want to spend many hours configuring their editor, have nice looking features and integrate with external programs, and keep hitting modifier keys.
What is Vim?
Vim is a highly configurable text editor built to allow efficient text editing. It is an enhanced version of the vi editor distributed with most UNIX systems. Vim is often called a “programmer’s editor” and is so useful for programming that it is considered by many to be a full-fledged IDE. Vim is for people who want a basic text editor that can be set up in a quick and dirty way, supports a few features, and generally stays out of your way.
Key differences
- Emacs is a very old program compared to Vim.
- Emacs has very intuitive key combinations, like Cn for the next line, Cp for the previous line, and so on. In contrast, Vim uses incredibly counter-intuitive keys like j for the next line, k for the previous line.
- Most Vim options are global options to do things like change key bindings or tab widths. Emacs, on the other hand, has a completely different notion of “modes,” different behaviors or features that can be turned on or off under certain circumstances.
- Emacs lisp and Vimscript are also very different. Emacs lisp (in true lisp tradition) has some primitives and seems pretty easy to understand. Vimscript is shorter and more difficult to understand.
- Vim is for people who want a basic text editor that can be set up in a quick and dirty way, supports a few features, and generally stays out of your way. Emacs is for people who want to spend many hours configuring their editor, have nice-looking features and integrate with external programs, and keep hitting modifier keys.
- Emacs is predominantly written and extended with Elisp. Vim is extended with Vimscript.
- Emacs has an editor, a shell, Mailreader, Irc, Google maps, even a vi mode. Emacs is self-documenting, basically comments in the code become documentation.
- Emacs has far superior customization compared to Vim.