Copyright © 1996-2017,2018 by Thomas E. Dickey

VILE – Vi Like Emacs – a text-editor


vile retains the "finger-feel", if you will, of vi, while adding the multiple buffer and multiple window features of emacs and other editors. It is definitely not a vi clone, in that some substantial stuff is missing, and the screen doesn't look quite the same. The things that you tend to type over and over probably work. Things done less frequently, like configuring a startup file, are somewhat (or very, depending on how ambitious you are) different. But what matters most is that one's "muscle memory" does the right thing to the text in front of you, and that is what vile tries to do for vi users.


This is a never-ending project. I originally began in late 1992, after deciding that I was dissatisfied with the original vi limitation of 2 buffers. Looking around, I found only a few vi clones that addressed this limitation (the other was xvi, which wasn't sufficiently portable).

Paul Fox's vile was just what I wanted to use. However, there were a few minor problems with the display of lines shifted left/right. One thing led to another, and I found myself working on vile. Well, it's still what I want to use. Moreover, it's more portable (and reliable) than ever.

See the changelog for details:

There is a project mailing list. You can subscribe to it here:

To submit bug reports, either subscribe to the list (since non-subscribers aren't allowed to post) or use the bug system at that same URL.


These are links to the stable release version of vile:

There are also installers for the Windows executables:

Some files are available via http:

Other Resources

Additional files are available via ftp. The archives directory in vile's directory contains binaries for VMS and OS/2 EMX in addition to the more commonly requested ones:

Ftp sites:


Packages for vile may combine vile and xvile or they may be separate. The two programs share files (such as the initialization scripts), which may be provided in a separate package. The syntax filters likewise may be in a separate package, either as executable programs, or as dynamically loaded shared objects.

Related webpages: