This subsection describes the following:
The :set command
Options available with :set
Example .exrc file
The :set command allows you to specify options that change 
characteristics of your editing environment.  Options may be put in the 
.exrc file or set during a vi session.
The colon should not be typed if the command is put in .exrc.
:set x | Enable option x. | 
:set nox | Disable option x. | 
:set x=val | Give value to optionx. | 
| :set | Show changed options. | 
| :set all | Show all options. | 
:set x? | Show value of option x. | 
The following table describes the options to :set.
The first column includes the optional abbreviation, if there is one,
and uses an equal sign to show that the option takes a value.
The second column gives the default, and the third column
describes the behavior of the enabled option.
| Option | Default | Description | 
|---|---|---|
| autoindent (ai) | noai | In insert mode, indent each line to the same level as the line above or below.  Use with   | 
| autoprint (ap) | ap | Display changes after each editor command. (For global replacement, display last replacement.)  | 
| autowrite (aw) | noaw | Automatically write (save) file if changed before opening another file with   | 
| beautify (bf) | nobf | Ignore all control characters during input (except tab, newline, or formfeed).  | 
| directory= (dir) | /tmp | Name the directory in which ex stores buffer files. (Directory must be writable.)  | 
| edcompatible | noed-compatible | Use ed-like features on substitute commands.  | 
| errorbells (eb) | errorbells | Sound bell when an error occurs. | 
| exrc (ex) | noexrc | Allow the execution of   | 
| hardtabs= (ht) | 8 | Define boundaries for terminal hardware tabs. | 
| ignorecase (ic) | noic | Disregard case during a search. | 
| lisp | nolisp | Insert indents in appropriate lisp format. ( ), { }, [[, and ]] are modified to have meaning for lisp.  | 
| list | nolist | Print tabs as ^I; mark ends of lines with $.
(Use   | 
| magic | magic | Wildcard characters 
  | 
| mesg | mesg | Permit system messages to display on terminal while editing in vi. | 
| number (nu) | nonu | Display line numbers on left of screen during editing session. | 
| open | open | Allow entry to open mode from ex. | 
| optimize (opt) | noopt | Abolish carriage returns at the end of lines when printing multiple lines, speeds output on dumb terminals when printing lines with leading white space (blanks or tabs).  | 
| paragraphs= (para> | IPLPPPQP LIpplpipbp | Define paragraph delimiters for movement by { or }. The pairs of characters in the value are the names of nroff/troff macros that begin paragraphs.  | 
| prompt | prompt | Display the ex prompt (:) when vi's
  | 
| readonly (ro) | noro | Any writes (saves) of a file will fail unless you
use   | 
| redraw (re) | noredraw | Terminal redraws screen whenever edits are made (in other words, insert mode pushes over existing characters, and deleted lines immediately close up). Default depends on line speed and terminal type.    | 
| remap | remap | Allow nested map sequences. | 
| report= | 5 | Display a message on the prompt line whenever you make an edit that affects at least a certain number of lines. For example,   | 
| scroll= | <1/2 window> | Amount of screen to scroll. | 
| sections= (sect) | SHNHH HU | Define section delimiters for [[ ]] movement. The pairs of characters in the value are the names of nroff/troff macros that begin sections.  | 
| shell= (sh) | /bin/sh | Pathname of shell used for shell escape (  | 
| shiftwidth= (sw) | 8 | Define number of spaces in backward (  | 
| showmatch (sm) | nosm | In vi, when ) or } is entered, cursor moves briefly to matching ( or {. (If match is not on the screen, rings the error message bell.) Very useful for programming.  | 
| showmode | noshowmode | In insert mode, displays a message on the prompt line indicating the type of insert you are making. For example, "Open Mode," or "Append Mode."  | 
| slowopen (slow) | Hold off display during insert. Default depends on line speed and terminal type.  | |
| tabstop= (ts) | 8 | Define number of spaces that a TAB indents during editing session. (Printer still uses system tab of 8.)  | 
| taglength= (tl) | 0 | Define number of characters that are significant for tags. Default (zero) means that all characters are significant.  | 
| tags= /usr/lib/tags | tags | Define pathname of files containing tags (see the UNIX   | 
| term= | Set terminal type. | |
| terse | noterse | Display shorter error messages. | 
| timeout (to) | timeout | Keyboard maps "time out" after 1 second. | 
| ttytype= | Set terminal type. | |
| warn | warn | Display the message, "No write since last change."  | 
| window= (w) | Show a certain number of lines of the file on the screen. Default depends on line speed and terminal type.  | |
| wrapmargin= (wm) | 0 | Define right margin. If greater than zero, automatically inserts carriage returns to break lines.  | 
| wrapscan (ws) | ws | Searches wrap around either end of file. | 
| writeany (wa) | nowa | Allow saving to any file. | 
set nowrapscan wrapmargin=7 set sections=SeAhBhChDh nomesg map q :w^M:n^M map v dwElp ab ORA O'Reilly & Associates, Inc.