# Chapter 12. vile—vi Like Emacs

#### Contents:

Authors and History
Important Command-Line Arguments
Online Help and Other Documentation
Initialization
Multiwindow Editing
GUI Interfaces
Extended Regular Expressions
Improved Editing Facilities
Programming Assistance
Interesting Features
Sources and Supported Operating Systems

vile stands for "vi Like Emacs." It started out as a copy of Version 3.9 of MicroEMACS that was modified to have the "finger feel" of vi. There are currently three maintainers: Paul Fox, Tom Dickey, and Kevin Buettner. The current version is 8.0; it is essentially the same as 7.4, but with bug fixes. This chapter was written using vile.

## 12.1. Authors and History

Paul Fox describes the early vile history this way:

vile's design goal has always been a little different than that of the other clones. vile has never really attempted to be a "clone" at all, though most people find it close enough. I started it because in 1990 I wanted to to be able to edit multiple files in multiple windows, I had been using vi for 10 years already, and the sources to Micro-EMACS came floating past my newsreader at a job where I had too much time on my hands. I started by changing the existing keymaps in the obvious way, and ran full-tilt into the "Hey! Where's 'insert' mode?" problem. So I hacked a little more, and hacked a little more, and eventually released in '91 or '92. (Starting soon thereafter, major version numbers tracked the year of release: 7.3 was the third release in '97.)

But my goal has always been to preserve finger-feel (as opposed to the display visuals), and, selfishly, to preserve finger-feel most for the commands I use. vile has quite an amazing ex mode, that works very well—it just looks really odd, and a couple of commands which are beyond the scope of the current parser are missing. For the same reasons, vile also won't fully parse existing .exrc files, since I don't really think that's so important—it does simple ones, but more sophisticated ones need some tweaking. But when you toss in vile's built-in command/macro language, you quickly forget you ever cared about .exrc.

Tom Dickey started working on vile in December of 1992, initially just contributing patches, and later doing more significant features and extensions, such as line numbering, name completion, and animating the buffer list window. Tom states that "Integrating features together is more important to my design goals than implementing a large number of features."

In February of 1994, Kevin Buettner started working on vile. Initially, he supplied bug fixes for the X11 version, xvile, and then improvements, such as scrollbars. This evolved into support for the Motif, OpenLook, and Athena widget sets. Because, surprisingly, the Athena widgets were not "universally available in a bugfree form," he wrote a version that used the raw Xt toolkit. This version ended up providing superior functionality to the Athena version. Kevin also contributed the initial support in vile for GNU Autoconf.

Currently, vile maintenance is done "by committee," with Tom Dickey being the primary maintainer. Paul manages the mailing lists.

For the near term, future work will focus on improving the Perl integration, and enhancing the major mode concept (discussed below).

Copyright © 2003 O'Reilly & Associates. All rights reserved.