Difference Between Similar Terms and Objects

Difference Between Vim and Emacs

This is an era of rivalries. Look around and you can see holy wars everywhere: iOS vs. Android, Apple vs. Samsung, MCU vs. DC, the list just goes on. One of the long-standing and the oldest of the holy wars is probably the ‘editor war’ between the users of Vim and Emacs. This editor war has been going on, creating confusion among the software community and the Linux users for decades. Vim and Emacs are undoubtedly two of the most popular editors for Puppet code on Unix machines. Both are really good and highly-efficient text editors used by most seasoned Linux users and programmers alike. Let’s take a look at some key differences between the two.

What is Vim?

Vim is an augmented version of the vi text editor used on Unix systems. Short for visual editor, vi is the standard text editor found in almost every Unix system and it is the most popular Linux text editor. It has been around since the early days of Unix. Vim is a vi-like screen-oriented text editor built to enable efficient text editing. Often called a ‘programmer’s editor,’ Vim uses simple, cursor-based operations to give a full-screen format. The first version of Vim was released to the public by Bram Moolenaar in 1991. It has evolved into one of the most popular and feature-rich editors since then. In 1998, the fifth generation of Vim was released and with it one of the most used features of the editor, Scripting, was also introduced. People can now write their own scripts for Vim, eventually expanding its functionality.

What is Emacs?

Emacs is a family of highly customizable, self-documenting real-time text editors designed for POSIX operating systems and available on Linux, macOS, BSD, Windows and more. Most users say Emacs is not actually an editor; in fact, it is a highly extensible LISP (List Processor) system that features text editing. Emacs is tailored for program development that enables you to format source code according to the programming you’re using. It is one of the most popular text editors in Linux which also acts as an electronic mail client, an integrated development environment, a document browser, etc. The GNU version of Emacs created by GNU Project founder Richard Stallman includes a mail client, along with other components, such as a newsreader and editor. It was originally written as a series of extension commands or MACroS for the late 1960s text editor TECO.

Difference between Vim and Emacs


– Vim is a text editor with three important modes: insert, normal and visual. Vim starts in “normal” mode by default and is used to control the editing session. In insert mode, your keystrokes become part of the document. Visual mode is used to make selection of text. You can create and edit your documents by switching back and forth between these modes. Emacs is also a display editor but it is much more than just a text editor. It is a highly extensible LISP (List Processor) system that features text editing. It also acts as an electronic mail client, an integrated development environment, a document browser, etc.

Ease of Use

 – Vim is extremely lightweight and fast to load. It’s intended to be a fast readily available and extremely versatile text editor that comes preinstalled on almost every Unix-based operating system including most of your Linux distributions out-of-the-box. It is better than most text editors out there. All you need to do is learn the keystrokes and you’re good to go. Emacs is available on pretty much every major operating system from Linux to macOS, BSD, Windows and more. However, it does not come preinstalled and a very few Linux distributions ship with Emacs out-of-the-box. With Emacs, you can do just about anything like edit texts, take notes, edit videos, shell access, listen to music, browse web, and more.


– Vim is more optimized for repetition. It is highly efficient considering it tracks your most recent actions and you can easily repeat the last change with just a single keystroke. But of course, you have to learn to craft your actions. Like Vim, Emacs has a rich, extensive set of commands for altering text. But with Emacs, you can customize commands at any time and you can also change the settings, most of which are customizable variables. It is essentially an execution environment for LISP programming language, which is Touring complete, making the capabilities of Emacs virtually limitless.


 – The core of Vim is written in C and its user interface is based on Bill Joy’s years-old vi, but with many new features. However, plug-ins for Vim is written in a language called VimScript, which is a built-in interface that allows developers to enhance the capabilities of Vim. Emacs, on the other hand, is written in a subset of Lisp called ELisp (the dialect used in GNU Emacs), which means you’ll be able to customize every little detail of the editor. Lisp has a very minimal, regular syntax. You can configure the GUI up to a highly granular level, even the interface itself.

Vim vs. Emacs: Comparison Chart


Like Vim, Emacs is also a text editor which can be run with a GUI but it is so much more than just a text editor. In fact, Emacs also acts as an electronic mail client, an integrated development environment, a document browser, etc. Unlike Vim, Emacs allows you to use Lisp programming language to write new commands or override old ones. This feature is called online extensibility. Emacs is also highly customizable which means you can customize every single detail up to a highly granular level, making its capabilities virtually limitless. However, Vim is still one of the most popular and widely used text editors around found in almost every Unix-based system out there.

Latest posts by Sagar Khillar (see all)

Sharing is caring!

Search DifferenceBetween.net :

Email This Post Email This Post : If you like this article or our site. Please spread the word. Share it with your friends/family.

Leave a Response

Please note: comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.

References :

[0]Neil, Drew. Practical Vim: Edit Text at the Speed of Thought. North Carolina, United States: Pragmatic Bookshelf, 2015. Print

[1]Neil, Drew. Practical Vim: Edit Text at the Speed of Thought. North Carolina, United States: Pragmatic Bookshelf, 2015. Print

[2]Uphill, Thomas. Troubleshooting Puppet. Birmingham, United Kingdom: Packt Publishing, 2015. Print

[3]Sobell, Mark G. A Practical Guide to Linux Commands, Editors, and Shell Programming. New Delhi, India: Pearson Education India, 2006. Print

[4]Donat, Wolfram. Learn Raspberry Pi Programming with Python. New York, United States: Apress, 2014. Print

[5]McDonnell, Mark. Pro Vim. New York, United States: Apress, 2014. Print

[6]Image credit: https://live.staticflickr.com/3889/14147244138_c04731826a_c.jpg

[7]Image credit: https://en.wikipedia.org/wiki/Emacs#/media/File:Emacs_Dired_buffers.png

Articles on DifferenceBetween.net are general information, and are not intended to substitute for professional advice. The information is "AS IS", "WITH ALL FAULTS". User assumes all risk of use, damage, or injury. You agree that we have no liability for any damages.

See more about : ,
Protected by Copyscape Plagiarism Finder