Code Editor Wars Redux: Vim, Emacs Fire Salvoes
Old-school flame wars about the best bare-bones text editor for software development may be revived as new editions of Vim and GNU Emacs were released in the same week.
The two text editors have stirred such passionate debate about their relative merits among their respective supporting camps that Wikipedia published an entry on the resulting "Editor war." The site describes it as "the common name for the rivalry between users of the Emacs and vi (Vim) text editors. The rivalry has become a lasting part of hacker culture and the free software community."
That entry may need to be updated soon as Vim 8.0 was announced last Monday followed by Emacs 25.1 just five days later. The timing is remarkable because, while Emacs has been updated regularly, the Vim update is an extreme rarity -- like a once-in-a-decade rarity.
"This the first major Vim release in 10 years," said a terse announcement on Google Groups by Bram Moolenaar. "There are interesting new features, many small improvements and lots of bug fixes."
On the Vim.org Web site, the project is described thusly:
Vim is a highly configurable text editor built to make creating and changing any kind of text very efficient. It is included as 'vi' with most UNIX systems and with Apple OS X.
Vim is rock stable and is continuously being developed to become even better. Among its features are:
- Persistent, multi-level undo tree.
- Extensive plug-in system.
- Support for hundreds of programming languages and file formats.
- Powerful search and replace.
- Integrates with many tools.
The site says the new update "gives you interesting new features, such as channels, JSON, Jobs, Timers, Partials, Lambdas, Closures, Packages and more. Test coverage has been increased, many bugs were fixed, this is a rock stable version."
Moolenaar also published a Vim Reference Manual providing a comprehensive list of new items and changes to existing features since Vim 7.4 was released.
Of special interest to developers, Moolenaar said, are new style tests. "This is for Vim developers," he said. "So far writing tests for Vim has not been easy. Vim 8 adds assert functions and a framework to run tests. This makes it a lot simpler to write tests and keep them updated. Also new are several functions that are added specifically for testing."
GNU Emacs, meanwhile, has followed a more active release cadence under the direction of the community backing the GNU OS and the Free Software Foundation. As with Vim, extensibility and customizability are self-professed hallmarks of the editor. "At its core is an interpreter for Emacs Lisp, a dialect of the Lisp programming language with extensions to support text editing," says its Web site.
New features of Emacs 25.1 include:
- Emacs can now load shared/dynamic libraries (modules). A dynamic Emacs module is a shared library that provides additional functionality for use in Emacs Lisp programs, just like a package written in Emacs Lisp would.
- Experimental support for Cairo drawing.
- Enhanced network security (TLS/SSL certificate validity and the like) via the new Network Security Manager (NSM).
- New minor mode 'electric-quote-mode' for using curved quotes as you type.
- Character folding support in isearch.el.
- New and improved facilities for inserting Unicode characters: C-x 8 now has shorthands for several chars, such as U+2010 (HYPHEN), U+2011 (NON-BREAKING HYPHEN), and U+2012 (FIGURE DASH).
Complete documentation on changes and more is available in the project's News file.
Here are more opportunities to read up on the interesting relationship between the two editors:
David Ramel is editor in chief of Visual Studio Magazine and Application Development Trends Magazine.