8. vi Clones Feature Summary
8.1 And These Are My Brothers, Darrell, Darrell, and Darrell
There are a number of freely available "clones" of the vi editor. Appendix E, vi and the Internet , provides a pointer to a web site that lists all known vi clones. We have chosen to cover four of the most popular ones. They are:
The clones were written because the source code for vi is not freely available, making it impossible to either port vi to a non-UNIX environment or to study the code, and/or because UNIX vi (or another clone!) did not provide desired functionality. For example, UNIX vi often has limits on the maximum length of a line, and it cannot edit binary files. (The chapters on the various programs present more information about each one's history.)
Each program provides a large number of extensions to UNIX vi ; often, several of the clones provide the same extensions, although usually not in an identical way. Instead of repeating the treatment of each common feature in each program's chapter, we have centralized the discussion here. You can think of this chapter as presenting "what the clones do," with each clone's chapter presenting "how the clone does it."
This chapter covers the following topics:
There is one additional feature in the clones that we have chosen not to cover: extension languages. As of May 1998, nvi has preliminary support for Perl and Tcl integration, elvis has its own C-like expression evaluator,[2 ] vim has a C-like expression evaluator, plus support for Perl, Python, and Tcl integration, and vile , which has always had its own built-in extension language, has preliminary support for Perl integration. The extension language integration and support are very recent for all of the programs and will undoubtedly change significantly. For this reason, any discussion of the extension language facilities would be obsolete almost as soon as this book goes to press.
We recommend that you check the online documentation for your clone if you're interested in programming your editor with an extension language.[3 ] Extension languages are a feature worth watching; they promise to bring a new dimension of power to vi users. The use of well-known programming languages, such as Perl, Python, and Tcl, is an additional advantage, since it is likely that users will already know one or more of them.