Skip to content
A tiny, fast, and someone erratic vi clone
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
os2
win32
COPYRIGHT
Makefile.in
README
README.portability
VERSION
blockio.c
configure.inc
configure.sh
display.c
dos.asm
doscall.c
editcor.c
exec.c
extern.h
find.c
fixtags.c
flexcall.c
gemcall.c
globals.c
grep.h
home.c
insert.c
levee.h
logit.c
lv.1
lv.doc
main.c
misc.c
mkversio.c
modify.c
move.c
os2call.c
rmxcall.c
tag.c
termcap.i
ucsd.c
undo.c
unixcall.c
wincall.c

README

My tiny (~54k on osx/x86_64; smaller on 32 bit machines) & ancient
(first written sometime in 1979 (in USCD pascal; I converted it to C
 sometime in the early 1980s)) almost-vi-clone.

I think it implements about 95% of visual mode;  I still use it on
most of my machines and only notice things lacking in exec mode
(I don't implement :g and :v) and when displaying long lines (standard
vi wraps, I -- following the lead of the USCD pascal editor -- truncate.)

Over its life it's been built on

* USCD pascal (in Pascal, then in p2; those sources may no longer exist
  because 8" floppies were expensive and I didn't do version control
  because they were tiny)
* TOS on the Atari ST
* MS-DOS
* Flexos
* iRMX
* OS/2
* Linux (the first version to make it into SCCS, in 1993, after 13 or
  14 years of use, porting, and development)
* FreeBSD
* NetBSD
* Macosx
* Windows 10

And it's currently (version 4) being built on Unixes (osx,*bsd,Linux),
Windows 10, and OS/2 v4 (both windows 10 & OS/2 are using their
respective console ANSI emulation, both of which have issues.)


The configuration options are

*  --use-termcap; link with termcap instead of curses, if at all possible.
*  --partial-install; don't install the lv, lv(1) name links.
*  --size=NNN; use an NNN-byte editor buffer (this is the maximum sized
   file that can be edited without truncation.
*  --stdio; use stdio for buffered i/o whenever practical
*  --logging; write copious logs to levee.log (in the startup directory)
*  --tputs; write control strings using the pacing functions in termcap
*  --noglob; don't use the system glob() function to expand wildcards
*  --ucsd; enable reading ucsd pascal .text files (via the -p option)
*  --dos; build for ms-dos
*  --tos; build for TOS
*  --rmx; build for iRMX
*  --flexos; build for flexOS
*  --win10; build for Windows (only tested on Windows 10)
*  --prefix; root of where to install things (defaults to /usr/local)
*  --execdir; where to install binaries ($prefix/bin)
*  --mandir; where to install the manpages ($prefix/man or $prefix/share/man)

You can’t perform that action at this time.