Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Vile (text editor)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{lowercase|title=vile}} {{Infobox software | name = vile | logo = | caption = | screenshot = | author = Paul Fox | developer = Thomas Dickey | latest release version = {{wikidata|property|preferred|references|edit|P348|P548=Q2804309}} | latest release date = {{Start date and age|{{wikidata|qualifier|preferred|single|P348|P548=Q2804309|P577}}|df=yes}} | operating_system = [[Cross-platform]] | genre = [[Text editor]] | license = [[GNU General Public License|GPL-2.0-only]] | website = {{Official URL}} }} '''vile''' is a [[text editor]] that combines aspects of the [[Emacs]] and [[Vi (text editor)|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".<ref name="RobbinsHannah2008">{{cite book|author1=Arnold Robbins|author2=Elbert Hannah|author3=Linda Lamb|title=Learning the vi and Vim Editors|url=https://books.google.com/books?id=Eb8J3BONVxAC&pg=PA343|date=15 July 2008|publisher="O'Reilly Media, Inc."|isbn=978-0-596-52983-3|pages=343–374}}</ref> An older version (vile 8.0) was presented in Chapter 12 of the O'Reilly book "Learning the vi Editor".<ref>{{cite book |url=http://www.oreilly.com/catalog/vi6/ |author1=Linda Lamb| author2=Arnold Robbins |title=Learning the vi Editor |edition=6 |publisher=O'Reilly & Associates, Inc. |date=November 1998 |isbn=1-56592-426-6 |pages=229–258}}</ref> The program is also known as '''xvile'''<ref>[http://www.linuxjournal.com/article/1258 Dan Wilder, "At Last, An X-Based vi", Linux Journal, February 1997]</ref> 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,<ref>[http://linuxgazette.net/issue12/updates.html Larry Ayers, "Updates to My Past Reviews", Linux Gazette, November 1996] {{webarchive |url=https://web.archive.org/web/20070804054034/http://linuxgazette.net/issue12/updates.html |date=August 4, 2007 }}</ref> who had provided many major contributions to the codebase over the preceding years. ==Learning to use vile== [[Image:Vile-in-terminal.png|thumb|right|Example of [Buffer List], a dynamic window updated as a buffer is modified.]] [[Image:winvile-with-help.png|thumb|right|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 (text editor)|elvis]], [[nvi]] and [[vim (text editor)|vim]]), which have combined their respective extensions with the original vi documentation. vile's documentation is three parts: * The online help file (type {{code|: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 [[command (computing)|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 [[Mode (user interface)|modes]], which are settings which affect the behavior of the program. vile extends the [[Vi (text editor)|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 programming tool|lex]] (preferably [[Flex lexical analyser|flex]]), with the remainder in [[C (programming language)|C]] to address irregular grammars such as [[Perl]] and [[Ruby (programming language)|Ruby]]. All of the syntax filters follow the same design: * Read from an external file the color- and video-attribute information into a [[hash table|chained hash table]], * Parse the file according to the [[lexical rule]]s, * Find the corresponding color- and video-attribute information for each lexical element, and * Write a [[Markup language|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.<ref>{{cite web |url=https://invisible-island.net/vile/vile.faq.html#project_history |page=Is there a project history? |title=VILE (Vi Like Emacs) – Frequently Asked Questions (FAQ) |access-date=August 5, 2020 }}</ref> ==See also== {{Portal|Free and open-source software}} *[[List of text editors]] *[[Comparison of text editors]] ==References== {{Reflist}} ==Further reading== *[https://web.archive.org/web/20080119042938/http://www.cmc.net/~bem/vile/ Review: vile editor is anything but] *[http://linuxgazette.net/issue01to08/xvile_mar96.html Review: vile and Xvile] *{{webarchive |url=https://web.archive.org/web/20060613040907/https://www.oreilly.com/catalog/vi6/chapter/ch08.html| |title=vi Clones Feature Summary from "Learning the vi Editor (6th Edition)"}}] ==External links== {{wikibooks|Learning the vi Editor/vile|vile}} *{{official website}} *{{Freshmeat|vile|vile}} *{{webarchive |url=https://web.archive.org/web/20080119042938/http://www.cmc.net/~bem/vile/ |date=January 19, 2008 |title=Brian Moore's vile page }} *[http://pobox.com/~totten/vile/ William Totten's vile page] *[http://thomer.com/vi/vi.html vi Lovers Homepage] *[http://www-personal.umich.edu/~knassen/vi/vi-softlinks.html vi Software Links] *[http://groups.google.com/group/alt.sources/msg/8191f4f7a4df22d6?hl=en&dmode=source alt.sources posting, June 1991] {{EmacsNavbox}} {{DEFAULTSORT:Vile (Text Editor)}} [[Category:Free text editors]] [[Category:Unix text editors]] [[Category:OpenVMS text editors]] [[Category:Windows text editors]] [[Category:Emacs]] [[Category:Termcap]]<!-- categories reflect the terminal drivers which may be used --> [[Category:Terminfo]] [[Category:Curses (programming library)]] [[Category:Vi]] [[Category:Software using the GNU General Public License]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Cite book
(
edit
)
Template:Cite web
(
edit
)
Template:Code
(
edit
)
Template:EmacsNavbox
(
edit
)
Template:Freshmeat
(
edit
)
Template:Infobox
(
edit
)
Template:Infobox software
(
edit
)
Template:Lowercase
(
edit
)
Template:Main other
(
edit
)
Template:Official website
(
edit
)
Template:Portal
(
edit
)
Template:Reflist
(
edit
)
Template:Sister project
(
edit
)
Template:Template other
(
edit
)
Template:Webarchive
(
edit
)
Template:Wikibooks
(
edit
)