Difference Between Emacs and Vim

Table of Contents

Main Difference

Emacs is a text editor standing on top of an extremely powerful lisp ecosystem. With vim, on needs to have a shell open. And probably a lot more tabs in your browser due to the lack of org-mode. Emacs has very intuitive key combinations, like C-n for next line, C-p for previous line, etc. In contrast, Vim uses incredibly counter intuitive keys like j for next line, k for previous line.

What is Emacs?

Emacs is a popular text editor used mainly 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 fancy looking features and integrate with external programs, and continuously press the modifier keys.

What is Vim?

Vim is a highly configurable text editor built to enable efficient text editing. It is an improved version of the vi editor distributed with most UNIX systems. Vim is often called a “programmer’s editor,” and so useful for programming that many consider it an entire IDE . Vim is for people who want a basic text editor that can be configured in a quick and dirty way, supports a few features, and overall stays out of your way.

Key Differences

  • Emacs is a very old program as compared to Vim.
  • Emacs has very intuitive key combinations, like C-n for next line, C-p for previous line, etc.In contrast, Vim uses incredibly counter intuitive keys like j for next line, k for previous line.
  • Most Vim options are global options to do things like change key bindings or tab width. Emacs, on the other hand has a completely different notion of “modes”, different behaviors or features that can be turned off or on in certain circumstances.
  • Emacs lisp and Vimscript themselves are also very different. Emacs lisp (in true lisp tradition) has a few primitives, and seems pretty easy to figure out. Vimscript is shorter and harder to figure out.
  • Vim is for people who want a basic text editor that can be configured in a quick and dirty way, supports a few features, and overall stays out of your way. Emacs is for people who want to spend many hours configuring their editor, have fancy looking features and integrate with external programs, and continuously press the modifier keys.
  • Emacs is written predominantly in 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 the comments in code become the documentation.
  • Emacs has far superior customization as compared to Vim.
  • ncG1vNJzZmivp6x7pbXFn5yrnZ6Ysm%2FDyKSgaJ2dlrC0edWsZK%2BhnWQ%3D