Vile (text Editor)
   HOME

TheInfoList



OR:

vile is a
text editor A text editor is a type of computer program that edits plain text. Such programs are sometimes known as "notepad" software (e.g. Windows Notepad). Text editors are provided with operating systems and software development packages, and can be us ...
that combines aspects of the
Emacs Emacs , originally named EMACS (an acronym for "Editor MACroS"), is a family of text editors that are characterized by their extensibility. The manual for the most widely used variant, GNU Emacs, describes it as "the extensible, customizable, s ...
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". An older version (vile 8.0) was presented in Chapter 12 of the O'Reilly book "Learning the vi Editor". The program is also known as xvile for the
X Window System The X Window System (X11, or simply X) is a windowing system for bitmap displays, common on Unix-like operating systems. X provides the basic framework for a GUI environment: drawing and moving windows on the display device and interacting wit ...
, and as winvile for
Microsoft Windows Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for serv ...
. vile was created and originally maintained by Paul Fox. In 1996, maintenance was taken over by
Thomas Dickey Lynx is a customizable text-based web browser for use on cursor-addressable character cell computer terminal, terminals. , it is the oldest web browser still being maintained, having started in 1992. History Lynx was a product of the Distribute ...
, who had provided many major contributions to the codebase over the preceding years.


Learning to use vile

Historically, vile's
documentation Documentation is any communicable material that is used to describe, explain or instruct regarding some attributes of an object, system or procedure, such as its parts, assembly, installation, maintenance and use. As a form of knowledge manageme ...
has focused on differences from vi. This is in contrast to the other common vi-clones (
elvis Elvis Aaron Presley (January 8, 1935 – August 16, 1977), or simply Elvis, was an American singer and actor. Dubbed the "Honorific nicknames in popular music, King of Rock and Roll", he is regarded as Cultural impact of Elvis Presley, one ...
,
nvi NVI or nvi may refer to: * nvi, a text editor * Avial NV, an airline * ''no value indicator'', a non-denominated postage stamp * Navoiy Airport, in Uzbekistan * Negative volume index, a financial analysis method * ''Nationale Vliegtuig Indust ...
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


Command completion

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


Major modes

Both vi and emacs have
modes Mode ( la, modus meaning "manner, tune, measure, due measure, rhythm, melody") may refer to: Arts and entertainment * '' MO''D''E (magazine)'', a defunct U.S. women's fashion magazine * ''Mode'' magazine, a fictional fashion magazine which is ...
, 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

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 Lex or LEX may refer to: Arts and entertainment * ''Lex'', a daily featured column in the ''Financial Times'' Games * Lex, the mascot of the word-forming puzzle video game ''Bookworm'' * Lex, the protagonist of the word-forming puzzle video ga ...
(preferably
flex Flex or FLEX may refer to: Computing * Flex (language), developed by Alan Kay * FLEX (operating system), a single-tasking operating system for the Motorola 6800 * FlexOS, an operating system developed by Digital Research * FLEX (protocol), a comm ...
), with the remainder in C to address irregular grammars such as
Perl Perl is a family of two high-level, general-purpose, interpreted, dynamic programming languages. "Perl" refers to Perl 5, but from 2000 to 2019 it also referred to its redesigned "sister language", Perl 6, before the latter's name was offici ...
and
Ruby A ruby is a pinkish red to blood-red colored gemstone, a variety of the mineral corundum ( aluminium oxide). Ruby is one of the most popular traditional jewelry gems and is very durable. Other varieties of gem-quality corundum are called sa ...
. 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

vile has been under continuous development since 1990.


See also

*
List of text editors The following is a list of notable text editors. Graphical and text user interface The following editors can either be used with a graphical user interface or a text user interface. Graphical user interface Text user interface Sys ...
*
Comparison of text editors This article provides basic comparisons for notable text editors. More feature details for text editors are available from the '':Text editor features, Category of text editor features'' and from the individual products' articles. This article may ...


References


Further reading


Review: vile editor is anything but
*]


External links

* * *
William Totten's vile pagealt.sources posting, June 1991
{{DEFAULTSORT:Vile (Text Editor) Free text editors Unix text editors OpenVMS text editors Windows text editors Emacs Termcap Terminfo Curses (programming library) Vi Software using the GPL license