Which is better Vim or Gvim

Vim vs Emacs: Detailed Comparison

The Linux community is no stranger to heated debates. From discussing the pros and cons of proprietary and open source software to defending their favorite distributions with the zeal of a knight defending the final redoubt, Linux users can be extremely empathetic, which doesn't make it easy for newbies to find useful, Find unbiased information.

A debate that has puzzled newbies for decades now revolves around Vim versus Emacs, two venerable text editors that many veteran Linux users and programmers still prefer as alternatives to modern editors and IDEs like Sublime Text, Visual Studio Code, or IntelliJ.

In this article, we'll compare Vim and Emacs to explain why comparing these two text editors is like comparing apples to oranges. By the end of this article, you should be able to decide which of the two text editors suits your needs and preferences better, and whether you should stick with something more modern.

Design philosophy

Vim was first published in 1991 as a direct descendant of vi, a much older screen-oriented text editor originally developed by Bill Joy for the Unix operating system. Vim's creator, Bram Moolenaar, originally called the editor Vi Imitation, but later decided to change the meaning of the acronym to Vi Improved. A fan of open source software, Moolenaar has released Vim under a charityware license and encouraged users who like the text editor to donate for children in Uganda.

Just like Vi, Vim is designed to be fast, readily available, and extremely versatile. It comes pre-installed on most Linux distributions and is available for virtually all operating systems. Since Vim is everywhere, it really pays to know at least the basics as you never know when to edit a text file on a system that doesn't have your favorite text editor.

Emacs has been around since 1976 and its name stands for Editor MACroS. The version of Emacs that most people use today is called GNU Emacs and was created by none other than the founder of the GNU Project, Richard Stallman. Just like Vim, Emacs runs on virtually every operating system you will ever come across. However, since it is a relatively large piece of software, it is usually not pre-installed.

The reason Emacs is great has everything to do with the fact that it is much closer to an operating system than it is to a text editor. It includes a full Turing programming language, Emacs Lisp, which makes it possible to customize and extend Emacs in a way that the mind has difficulty understanding. To illustrate what we mean, we recommend checking out the website of GNEVE, a video editor for Emacs.

user friendliness

The picture above perfectly shows the learning curves of Vi / Vim, Emacs and other popular text editors. With Vim, all you have to do is open almost every cheatsheet you find in Google Images in a separate window and play with the keyboard shortcuts for a while. At first, you don't even know how to edit a text file, but it won't take more than a couple of hours to know all the basics. You can even download a GUI version of VIM like gVim to add menus and toolbars for frequently used commands, making the editor even easier to learn.

Emacs is like a sandbox game. You start with an unlabeled brown box filled with tools that can accomplish almost anything you can think of, including editing text files. The only problem is that there is no obvious way to approach this sandbox. While there are cheat sheets and tutorials online, they can be hours and you will barely scratch the surface of what Emacs can do. Yes, knowing the pros and cons of Emacs can be extremely rewarding, but you should be wondering whether it is worth the journey.

productivity

Vim is a fast text editor that opens instantly and offers its users two modes: insert mode and command mode. In the first case, you enter text in the editor; in the second, you enter keyboard shortcuts to execute various commands. Emacs takes a little longer to start up and is modelless, just like most text editors today.

Although Emacs can take up to 2-3 seconds to load on older systems, most users don't mind because they never close it. Instead, they open Emacs in shell mode so that they can run shell in Emacs, rather than the other way around. With the shell running in Emacs, you can live in the software more or less 24/7, doing everything from listening to music to taking notes to playing games.

Needless to say, it is easy to get distracted by Emacs if you are the type of guy who likes to tinker with software. However, if you can manage to keep focus and use Emacs to improve your workflow, your productivity can skyrocket. For text-only editing, Vim is usually faster, but experience is a big factor in this regard.

Adaptability and expandability

Both Vim and Emacs support plugins that can improve their functionality. Emacs goes one step further with its Emacs Lisp programming language. Since Emacs Lisp Touring is complete, its possibilities are limitless.

Would you like to search Google directly from Emacs? Just run the following Emacs Lips code, type Mx prestude-google, and this new command will work immediately:

(defun prelude-google ()
"Google's a query or region if any."
(interactive)
(browse-url
(concat
"http://www.google.com/search?ie=utf-8&oe=utf-8&q="
(if mark-active
(buffer-substring (region-beginning) (region-end))
(read-string "Google:")))))

To learn more about Emacs' impressive extensibility, we recommend reading this article by Bozhidar Batsov, author of the code snippet above.

When Vim users feel they are missing certain features, they usually resort to one of the thousands and thousands of Vim plugins. However, you can also use Vimscript, Vim's internal scripting language. Both Vim and Emacs also support themes, so nothing prevents you from posing as Neo from Matrix.

Conclusion

As we said at the beginning, comparing Vim to Emacs is like comparing apples to oranges. One is a capable text editor with many advanced features for power users, while the other is a sandbox that is great for editing text files. If you're happy with your current workflow and just looking for an alternative to modern text editors like Sublime Text, Vim is the way to go. However, if you want to completely reconsider how you edit text files and write software applications, Emacs has everything you could want and much more.

Vim:

  • Easier and easier to learn than Emacs.
  • Better than a text editor.
  • Pre-installed on most Linux distributions.

Emacs:

  • Extremely powerful and infinitely expandable.
  • Fantastic support for GNU tools.
  • Embodies the programming mindset.

Something like that