Contents:
The vi and ex Editors: Why So Much Material?
What We Cover
Mice vs. vi
Editing Multiple Files with vi
Edits Between Files
Local Settings for vi and ex
Using Buffers to Move or Copy Text
Get Back What You Deleted with Numbered Buffers
Using Search Patterns and Global Commands
Confirming Substitutions in ex and vi
Keep Your Original File, Write to a New File
Saving Part of a File
Appending to an Existing File
Moving Blocks of Text by Patterns
Useful Global Commands (with Pattern Matches)
Counting Occurrences; Stopping Search Wraps
Capitalizing Every Word on a Line
Setting vi Options Automatically for Individual Files
Modelines: Bug or Feature?
Multiple Editor Setup Files; Starting with a Search
Per File Setups in Separate Files
Filtering Text Through a UNIX Command
Safer vi Filter-Throughs
vi/ex File Recovery vs. Networked Filesystems
vi -r May not Write Recovered Buffer When You Exit
Shell Escapes: Running One UNIX Command While Using Another
vi Compound Searches
Keep Track of Functions and Included Files with ctags and tags
Setting Multiple tags Files
vi Outsmarts Dual-Function Function Keys
vi Word Abbreviation
Using vi Abbreviations as Commands (Cut and Paste Between vi's)
Fixing Typos with vi Abbreviations
vi Line Commands vs. Character Commands
Out of Temporary Space? Use Another Directory
The ex Open Mode Can Be Handy
Neatening Lines
Finding Your Place with Undo
We're giving a lot of pages to the vi editor. People who use another editor, like Emacs, might wonder why. Here's why.
I've watched people (including myself) learn and use vi for 15 years. It's the standard editor that comes with almost every UNIX system these days, but most people have no idea that vi can do so much. People are surprised, over and over, when I show them features that their editor has. Even with its warts, vi is a Power Tool. If you work with files, you probably use it constantly. Knowing how to use it well will save you lots of time and work.
But why not give the same coverage to another editor that lots of people use: GNU Emacs (32.1)? That's because GNU Emacs comes with source code and can be extended by writing LISP code. Its commands have descriptive names that you can understand by reading through a list. vi's commands are usually no more than a few characters long; many of the option names are short and not too descriptive either. Lots of UNIX systems don't even have vi source code these days.
I hope that you vi users will learn a lot in this section, and that people who don't use vi will at least browse through to see some of vi's less obvious features.
-