A portable multi-file text editor
and
the smallest full-function vi clone
by
Chris and John Downey
Xvi is a portable multi-window version of the UNIX editor ‘vi’, derived from "STEVIE" in the 1980s.
The program was originally developed for the Atari ST, but has been ported to AIX, BSD, HP-UX, MS-DOS, OS/2, QNX, Solaris, SunOS, Sunview, System V, Windows NT and Xenix/386 as well. In spite of its name, there is, as yet, no X-Windows-specific version of it.
It uses text windows separated by horizontal status lines on character mode displays and the windows may represent different files being edited, or different views on to the same file.
Xvi is the full-feature vi clone with the smallest program size (under 100 Kbytes, compiling with clang -Os) and memory use.
Program size under x86 Linux
(Debian squeeze, hence gcc-4.9 -O2) | Runs hanoi? | Runs maze? | |||||
---|---|---|---|---|---|---|---|
Text | Data | BSS | Total | When running | |||
xvi | 157394 | 5748 | 3304 | 166446 | 1612 KB | Yes | Yes |
ex/vi | 218783 | 2518 | 51192 | 272493 | 1656 KB | Yes | No |
nvi | 404612 | 2884 | 352 | 407848 | 4152 KB | Yes | Yes |
elvis(*) | 505984 | 29864 | 21392 | 557240 | 4424 KB | No | SEGV |
elvis-tiny | 81561 | 2448 | 27200 | 111209 | 1548 KB | No | No |
vile | 982633 | 12704 | 49288 | 1044625 | 3464 KB | No | No |
vim | 2315002 | 79708 | 33084 | 2427794 | 4792 KB | Yes | No |
vim-tiny | 980746 | 42888 | 14928 | 1038562 | 3648 KB | Yes | No |
Compiling xvi with gcc -Os gets the program text down to 104544 bytes; with clang -Os, 100406 bytes. elvis-tiny with clang -Os is a mere 62439 bytes.
O/S | xvi version | Files |
---|---|---|
Linux | 2.50.3 | 32-bit tarball
64-bit tarball Debian/Ubuntu for i386 Debian/Ubuntu for amd64 |
MS-DOS | 2.50.3 | Zip file for MS-DOS |
The current source code release is
also available from SourceForge, while current development takes place on github.com.Older releases of the source code are: