vi, like many of the utilities developed during the early years of Unix, has a reputation for being hard to navigate. Bram Moolenaar's enhanced clone, Vim ("vi Improved"), has gone a long way toward removing reasons for such impressions. Vim includes many conveniences, visual guides, and help screens. It has become possibly the most popular version of vi, so this seventh edition of this book devotes seven new chapters to it in Part 2. However, many other worthy clones of vi also exist and they are covered in part 3.
The first two chapters present some simple vi commands with which you can get started. Chapters 3 and 4 concentrate on easier ways to do tasks. Chapters 5 through 7 provide tools that help you shift more of the editing burden to the computer. They introduce you to the ex line editor underlying vi, and they show you how to issue ex commands from within vi.
Chapter 8, provides an introduction to the extensions available in the four vi clones covered in this book. It centralizes in one place the descriptions of multiwindow editing, GUI interfaces, extended regular expressions, facilities that make editing easier, and several other features, providing a roadmap to what follows in the rest of this book. It also provides a pointer to source code for the original vi, which can be compiled easily on modern Unix systems, including Linux.
Part 2 describes Vim, the most popular vi clone. Chapter 9, provides a general introduction to Vim, including where to get binary versions for popular operating systems and some of the different ways to use Vim. Chapter 10 describes the major improvements in Vim, such as built-in help, control over initialization, additional motion commands, and extended regular expressions. Chapter 11, focuses on multiwindow editing, which is perhaps the most significant additional feature over standard vi. This chapter provides all the details on creating and using multiple windows.
Chapter 12, looks into the Vim command language, which lets you write scripts to customize and tailor Vim to suit your needs. Much of Vim's ease of use comes from the large number of scripts that other users have already written and contributed to the Vim distribution. Chapter 13 looks at Vim in modern GUI environments. Chapter 14 focuses on Vim's use as a programmer's editor, above and beyond its facilities for general text editing. Of particular value are the folding and outlining facilities, smart indenting, syntax highlighting, and edit-compile-debug cycle speedups. Chapter 15, is a bit of a catch-all chapter, covering a number of interesting points that don't fit into the earlier chapters.
Part 3 describes three other popular vi clones: nvi, elvis, and vile. Chapters 16 through 18 cover these clones and show you how to use them, discussing the features that are specific to each one.
Part 4 provides useful reference material. Appendix A lists all vi and ex commands, sorted by function. It also provides an alphabetical list of ex commands. Selected vi and ex commands from Vim are also included. Appendix B lists set command options for vi and for all four clones. Appendix C consolidates checklists found earlier in the book. Appendix D describes vi's place in the larger Unix and Internet culture.
vi and its clones may seem like backwards tools in the 21st century, but at a very low level of operation, it may be all you have. It is good to understand it or at least have a reference where you can get up to speed quickly if you need to do so. You may say this is only something system admins need to know, but at one time or another we all turn into system administrators at some level. Also, vi is one of the few editing tools you can count on to be on every Unix system. You cannot say the same of dtpad (most commonly on Sun workstations) or nedit (common on SGI and Sun workstations). Sometimes you have to trade ubiquity for intuitiveness, and in the case of Unix editors, this is one of those times.