home | O'Reilly's CD bookshelfs | FreeBSD | Linux | Cisco | Cisco Exam  


Book HomeLearning the vi EditorSearch this book

8.7. Programming Assistance

vi was developed primarily as a programmer's editor. It has features that make things especially easy for the UNIX programmer—someone writing C programs and troff documentation. (Real Programmers write Real Documentation in troff.) Several of the clones are proud bearers of this tradition, adding a number of features that make them even more usable and capable for the "power user."[46]

[46]In contrast to the What You See Is What You Get (WYSIWYG) philosophy, UNIX is the You Asked For It, You Got It operating system. (With thanks to Scott Lee.)

Two features (among many) most deserve discussion:

Edit-compile speedup
elvis, vim, and vile allow you to easily invoke make(1), capture the errors from your compiler, and automatically move to the lines containing the errors. You can then fix the errors and re-run make, all from within the editor.

Syntax highlighting
elvis, vim, and vile have the ability to highlight and/or change the color of different syntactic elements in different kinds of files.

8.7.1. Edit-Compile Speedup

Programming often consists of a "compile-test-debug" cycle. You make changes, compile the new code, and then test and debug it. When learning a new language, syntax errors are especially common, and it is frustrating to be constantly stopping and restarting (or suspending and resuming) the editor in between compiles.

elvis, vim, and vile all provide facilities that allow you to stay within the editor while compiling your program. Furthermore, they capture the compiler's output and use it to automatically go to each line that contains an error.[47] Consistent use of this ability can save time and improve programmer productivity.

[47]Yet another feature that emacs users are accustomed to comes to vi.

Here is an example, using elvis. You are beginning to learn C++, so you start out with the obligatory first program:

Keystrokes Results
:w hello.C Figure

You enter the program, forgetting the closing quote, and then write the program to hello.C.

:make hello Figure

You type the :make command to run make, which in turn runs the C++ compiler. (In this case, g++.)

:errlist Figure

The :errlist command moves to the line with the error and displays the first compiler error message in the status line.

You can fix the error, resave the file, re-run :make and eventually compile your program without errors.

All of the editors have similar facilities. They will all compensate for changes in the file, correctly moving you to subsequent lines with errors. More details are provided in each editor's chapter.



Library Navigation Links

Copyright © 2003 O'Reilly & Associates. All rights reserved.