vile
Original authorPaul Fox
DeveloperThomas Dickey
Stable release
9.8zb[1]ย Edit this on Wikidata / 1 February 2026; 4 months agoย (1 February 2026)
Operating systemCross-platform
TypeText editor
LicenseGPL-2.0-only
Websiteinvisible-island.net/vile/ Edit this at Wikidata
Repository

vile is a text editor that combines aspects of the Emacs and vi editors. These editors are traditionally located on opposing sides of the editor wars, as users of either tend to have strong sentiments against the editor they do not use. vile attempts to reconcile these positions.

vile is an acronym which stands for "VI Like Emacs". vile 9.6 is featured in Chapter 18 of the O'Reilly book "Learning the vi and Vim Editors".[2] An older version (vile 8.0) was presented in Chapter 12 of the O'Reilly book "Learning the vi Editor".[3]

The program is also known as xvile[4] for the X Window System, and as winvile for Microsoft Windows.

vile was created and originally maintained by Paul Fox. In 1996, maintenance was taken over by Thomas Dickey,[5] who had provided many major contributions to the codebase over the preceding years.

Learning to use vile

edit
Example of [Buffer List], a dynamic window updated as a buffer is modified.
winvile and online help focusing on differences from vi.

Historically, vile's documentation has focused on differences from vi. This is in contrast to the other common vi-clones (elvis, nvi and vim), which have combined their respective extensions with the original vi documentation.

vile's documentation is three parts:

  • The online help file (type :h)
  • Specialized topics such as the macro language (text files)
  • Built-in documentation.
    • Tables of commands and other data
    • Dynamic windows showing register contents, mode-settings, etc.

vile is built from a combination of hand-crafted code and tables processed by a special-purpose program. The predefined information from the tables can be rendered in various ways, including showing the available commands, providing name-completion, etc. In other flavors of vi, the analogous tables are not distinct from the hand-crafted code.

In other vi flavors, the information shown is static, requiring interaction from the user to make it update. In vile, however, this information is dynamicโ€”it updates these special windows as changes are made to the features they render, e.g., the list of all buffers in memory, the mode-settings corresponding to the buffer which has focus, etc.

While many of vile's features are now found in other vi-compatible editors, some of the most powerful were implemented before widespread adoption in the others. For example, multiple windows were early features in vile (and xvi) from the start. The same applies to reading from pipes, complex fences. Some of this is brought out in the O'Reilly book, though no careful study has been made of the way in which features are adopted and adapted across the vi and emacs variants.

Features

edit

Command completion

edit

vile supports command completion for several elements of a command: the command name, filename, directory name, and mode values.

Major modes

edit

Both vi and emacs have modes, which are settings which affect the behavior of the program. vile extends the vi modes such as list, number, etc., by providing three levels of mode: global, buffer and window. The buffer modes are associated with the buffer contents, e.g., line-terminators, read-only attributes. All of those modes are predefined. vile can be customized by defining majormodes, which combine specific settings of the buffer modes with an association to the file type. These majormodes have as well special modes such as the association with a specific syntax filter.

Syntax highlighting

edit

vile performs syntax highlighting by running a syntax filter program which parses the buffer contents. Initially this was a separate program. However, to improve performance and avoid display problems, these syntax filters usually are compiled into the editor. Most of the syntax filters are implemented with lex (preferably flex), with the remainder in C to address irregular grammars such as Perl and Ruby. All of the syntax filters follow the same design:

  • Read from an external file the color- and video-attribute information into a chained hash table,
  • Parse the file according to the lexical rules,
  • Find the corresponding color- and video-attribute information for each lexical element, and
  • Write a marked-up copy of the file which is read by vile (via a pipe if the syntax filters are external programs, or via a function call if they are internal).

vile paints the markup information on top of the buffer contents using in regions delimited by line and column numbers. The markup is not attached to the underlying buffer contents. To update the markup as the buffer is changed requires reanalysis. This is done automatically when the user pauses.

History

edit

vile has been under continuous development since 1990.[6]

See also

edit

References

edit
  1. ^ Thomas E. Dickey (2 February 2026). "ANN: vile-9.8zb". Retrieved 2 February 2026.
  2. ^ Arnold Robbins; Elbert Hannah; Linda Lamb (15 July 2008). Learning the vi and Vim Editors. O'Reilly Media, Inc. pp.ย 343โ€“374. ISBNย 978-0-596-52983-3.
  3. ^ Linda Lamb; Arnold Robbins (November 1998). Learning the vi Editor (6ย ed.). O'Reilly & Associates, Inc. pp.ย 229โ€“258. ISBNย 1-56592-426-6.
  4. ^ Dan Wilder, "At Last, An X-Based vi", Linux Journal, February 1997
  5. ^ Larry Ayers, "Updates to My Past Reviews", Linux Gazette, November 1996 Archived August 4, 2007, at the Wayback Machine
  6. ^ "VILE (Vi Like Emacs) โ€“ Frequently Asked Questions (FAQ)". p.ย Is there a project history?. Retrieved August 5, 2020.

Further reading

edit
edit

๐Ÿ“š Artikel Terkait di Wikipedia

List of text editors

notable text editors. The editors below can be used with either a graphical user interface or a text-based user interface. The following text editors provide

Vile

road Vile Parle, a suburb of Mumbai in India Vile: Exhumed, a 2025 video game Vile (film), a 2011 horror movie Vile (surname) Vile (text editor) Vial

Vi (text editor)

text editor originally created for the Unix operating system. The portable subset of the behavior of vi and programs based on it, and the ex editor language

Vim (text editor)

Vim (/vษชm/ ; short for vi improved) is a free and open-source text editor. Vim provides both a terminal screen user interface as well as a graphical user

Nvi

default vi on DragonFly BSD. Free and open-source software portal vile vim vi (text editor) ยงย Ports and clones "nvi 1.81.6". 18 November 2007. Keith Bostic

None So Vile

None So Vile is the second studio album by Canadian death metal band Cryptopsy, released on 3 July 1996 by Wrong Again Records. The album was later reissued

MicroEMACS

more GNU Emacs-compatible editor. Many relationships to contemporary editors can also be found in MicroEMACS. The vi clone vile was derived from an older

Ivan T. Sanderson

interplanetary space. In 1968, Sanderson introduced the concept of the "vile vortex". Vile vortices are supposed to be "anomalic regions" regularly distributed