Expand PMF_FN_* macros.
[netbsd-mini2440.git] / dist / nvi / docs / vi.ref / set.opt.texi
blobeb1c3d2495a1f354d13bc0f462c1829b5193cbee
1 @comment  Copyright (c) 1994
2 @c $NetBSD: set.opt.texi,v 1.3 2008/10/02 15:39:43 christos Exp $
3 @comment      The Regents of the University of California.  All rights reserved.
4 @comment  Copyright (c) 1994, 1995, 1996
5 @comment        Keith Bostic.  All rights reserved.
6 @comment 
7 @comment  See the LICENSE file for redistribution information.
8 @comment 
9 @comment      Id: set.opt.texi,v 8.1 2001/08/18 20:43:48 skimo Exp (Berkeley) Date: 2001/08/18 20:43:48
10 @comment 
11 @chapter Set Options
13 There are a large number of options that may be set (or unset) to
14 change the editor's behavior.
15 This section describes the options, their abbreviations and their
16 default values.
18 In each entry below, the first part of the tag line is the full name
19 of the option, followed by any equivalent abbreviations.
20 (Regardless of the abbreviations, it is only necessary to use the
21 minimum number of characters necessary to distinguish an abbreviation
22 from all other commands for it to be accepted, in
23 @EV{nex,nvi}.
24 Historically, only the full name and the official abbreviations
25 were accepted by
26 @EV{ex,vi}.
27 Using full names in your startup files and environmental variables will
28 probably make them more portable.)
29 The part in square brackets is the default value of the option.
30 Most of the options are boolean, i.e. they are either on or off,
31 and do not have an associated value.
33 Options apply to both
34 @CO{ex}
35 and
36 @CO{vi}
37 modes, unless otherwise specified.
39 With a few exceptions,
40 all options are settable per screen, i.e. the
41 @OP{tags}
42 option can be set differently in each screen.
43 The exceptions are the
44 @OP{columns},
45 @OP{lines},
46 @OP{secure}
47 and
48 @OP{term}
49 options.
50 Changing these options modifies the respective information for all screens.
52 For information on modifying the options or to display the options and
53 their current values, see the
54 @QQ{set}
55 command in the section entitled
56 @QB{Ex Commands} .
57 @itemize @bullet
58 @cindex altwerase
59 @IP{altwerase [off]}
61 @CO{Vi}
62 only.
63 Change how
64 @CO{vi}
65 does word erase during text input.
66 When this option is set, text is broken up into three classes:
67 alphabetic, numeric and underscore characters, other nonblank
68 characters, and blank characters.
69 Changing from one class to another marks the end of a word.
70 In addition, the class of the first character erased is ignored
71 (which is exactly what you want when erasing pathname components).
72 @cindex autoindent
73 @IP{autoindent, ai [off]}
75 If this option is set, whenever you create a new line (using the
76 @CO{vi}
77 @CO{A},
78 @CO{a},
79 @CO{C},
80 @CO{c},
81 @CO{I},
82 @CO{i},
83 @CO{O},
84 @CO{o},
85 @CO{R},
86 @CO{r},
87 @CO{S},
88 and
89 @CO{s}
90 commands, or the
91 @CO{ex}
92 @CO{append},
93 @CO{change},
94 and
95 @CO{insert}
96 commands) the new line is automatically indented to align the cursor with
97 the first nonblank character of the line from which you created it.
98 Lines are indented using tab characters to the extent possible (based on
99 the value of the
100 @OP{tabstop}
101 option,
102 and if
103 @OP{expandtab}
104 is not set) and then using space characters as necessary.
105 For commands inserting text into the middle of a line, any blank characters
106 to the right of the cursor are discarded, and the first nonblank character
107 to the right of the cursor is aligned as described above.
108 @sp 1
109 The indent characters are themselves somewhat special.
110 If you do not enter more characters on the new line before moving to
111 another line, or entering
112 @LI{<escape>},
113 the indent character will be deleted and the line will be empty.
114 For example, if you enter
115 @LI{<carriage-return>}twice in succession,
116 the line created by the first
117 @LI{<carriage-return>}will not have any characters in it,
118 regardless of the indentation of the previous or subsequent line.
119 @sp 1
120 Indent characters also require that you enter additional erase characters
121 to delete them.
122 For example,
123 if you have an indented line, containing only blanks, the first
124 @LI{<word-erase>}character you enter will erase up to end of the indent characters,
125 and the second will erase back to the beginning of the line.
126 (Historically, only the
127 @LI{<control-D>}key would erase the indent characters.
128 Both the
129 @LI{<control-D>}key and the usual erase keys work in
130 @CO{nvi}.)
131 In addition, if the cursor is positioned at the end of the indent
132 characters, the keys
133 @QT{0<control-D>}
134 will erase all of the indent characters for the current line,
135 resetting the indentation level to 0.
136 Similarly, the keys
137 @QT{^<control-D>}
138 will erase all of the indent characters for the current line,
139 leaving the indentation level for future created lines unaffected.
140 @sp 1
141 Finally, if the
142 @OP{autoindent}
143 option is set, the
144 @CO{S}
146 @CO{cc}
147 commands change from the first nonblank of the line to the end of the
148 line, instead of from the beginning of the line to the end of the line.
149 @cindex autoprint
150 @IP{autoprint, ap [off]}
152 @CO{Ex}
153 only.
154 Cause the current line to be automatically displayed after the
155 @CO{ex}
156 commands
157 @CO{<},
158 @CO{>},
159 @CO{copy},
160 @CO{delete},
161 @CO{join},
162 @CO{move},
163 @CO{put},
164 @CO{t},
165 @CO{Undo},
167 @CO{undo}.
168 This automatic display is suppressed during
169 @CO{global}
171 @CO{v}
172 commands, and for any command where optional flags are used to explicitly
173 display the line.
174 @cindex autowrite
175 @IP{autowrite, aw [off]}
177 If this option is set, the
178 @CO{vi}
179 @CO{!},
180 @CO{^^},
181 @CO{^]}
183 @CO{<control-Z>}
184 commands, and the
185 @CO{ex}
186 @CO{edit},
187 @CO{next},
188 @CO{rewind},
189 @CO{stop},
190 @CO{suspend},
191 @CO{tag},
192 @CO{tagpop},
194 @CO{tagtop}
195 commands automatically write the current file back to the current file name
196 if it has been modified since it was last written.
197 If the write fails, the command fails and goes no further.
198 @sp 1
199 Appending the optional force flag character
200 @QT{!}
201 to the
202 @CO{ex}
203 commands
204 @CO{next},
205 @CO{rewind},
206 @CO{stop},
207 @CO{suspend},
208 @CO{tag},
209 @CO{tagpop},
211 @CO{tagtop}
212 stops the automatic write from being attempted.
213 @sp 1
214 (Historically, the
215 @CO{next}
216 command ignored the optional force flag.)
217 Note, the
218 @CO{ex}
219 commands
220 @CO{edit},
221 @CO{quit},
222 @CO{shell},
224 @CO{xit}
226 @emph{not}
227 affected by the
228 @OP{autowrite}
229 option.
230 @sp 1
232 @OP{autowrite}
233 option is ignored if the file is considered read-only for any reason.
234 @comment  I cannot get a double quote to print between the square brackets
235 @comment  to save my life.  The ONLY way I've been able to get this to work
236 @comment  is with the .tr command.
237 @cindex backup
238 @IP{backup [""]}
240 If this option is set, it specifies a pathname used as a backup file,
241 and, whenever a file is written, the file's current contents are copied
242 to it.
243 The pathname is
244 @QT{#},
245 @QT{%}
247 @QT{!}
248 expanded.
249 @sp 1
250 If the first character of the pathname is
251 @QT{N},
252 a version number is appended to the pathname (and the
253 @QT{N}
254 character is then discarded).
255 Version numbers are always incremented, and each backup file will have
256 a version number one greater than the highest version number currently
257 found in the directory.
258 @sp 1
259 Backup files must be regular files, owned by the real user ID of the
260 user running the editor, and not accessible by any other user.
261 @cindex beautify
262 @IP{beautify, bf [off]}
264 If this option is set, all control characters that are not currently being
265 specially interpreted, other than
266 @LI{<tab>},
267 @LI{<newline>},
269 @LI{<form-feed>},
271 discarded from commands read in by
272 @CO{ex}
273 from command files, and from input text entered to
274 @CO{vi}
275 (either into the file or to the colon command line).
276 Text files read by
277 @EV{ex,vi}
279 @emph{not}
280 affected by the
281 @OP{beautify}
282 option.
283 @cindex cdpath
284 @IP{cdpath [environment variable CDPATH, or current directory]}
286 This option is used to specify a colon separated list of directories
287 which are used as path prefixes for any relative path names used as
288 arguments for the
289 @CO{cd}
290 command.
291 The value of this option defaults to the value of the environmental
292 variable
293 @LI{CDPATH}if it is set, otherwise to the current directory.
294 For compatibility with the POSIX 1003.2 shell, the
295 @CO{cd}
296 command does
297 @emph{not}
298 check the current directory as a path prefix for relative path names
299 unless it is explicitly specified.
300 It may be so specified by entering an empty string or a
301 @QT{.}
302 character into the
303 @LI{CDPATH}variable or the option value.
304 @cindex cedit
305 @IP{cedit [no default]}
307 This option adds the ability to edit the colon command-line history.
308 This option is set to a string.
309 Whenever the first character of that string is entered on the colon
310 command line,
311 you will enter a normal editing window on the collected commands that
312 you've entered on the
313 @CO{vi}
314 colon command-line.
315 You may then modify and/or execute the commands.
316 All normal text editing is available,
317 except that you cannot use
318 @CO{<control-W>}
319 to switch to an alternate screen.
320 Entering a
321 @CO{<carriage-return>}
322 will execute the current line of the screen window as an ex command in
323 the context of the screen from which you created the colon command-line
324 screen,
325 and you will then return to that screen.
326 @sp 1
327 Because of
328 @CO{vi}'s
329 parsing rules, it can be difficult to set the colon command-line edit
330 character to the
331 @LI{<escape>}character.
332 To set it to
333 @LI{<escape>},
335 @QT{set cedit=<literal-next><escape>}.
336 @sp 1
337 If the
338 @OP{cedit}
339 edit option is set to the same character as the
340 @OP{filec}
341 edit option,
342 @CO{vi}
343 will perform colon command-line editing if the character is entered as
344 the first character of the line,
345 otherwise,
346 @CO{vi}
347 will perform file name expansion.
348 @cindex columns
349 @IP{columns, co [80]}
351 The number of columns in the screen.
352 Setting this option causes
353 @EV{ex,vi}
354 to set (or reset) the environmental variable
355 @LI{COLUMNS}.
356 See the section entitled
357 @QB{Sizing the Screen}
358 more information.
359 @cindex comment
360 @IP{comment [off]}
362 @CO{Vi}
363 only.
364 If the first non-empty line of the file begins with the string
365 @QT{#},
366 @QT{/*}
368 @QT{//},
369 this option causes
370 @CO{vi}
371 to skip to the end of that shell, C or C++ comment (probably a
372 terribly boring legal notice) before displaying the file.
373 @cindex directory
374 @IP{directory, dir [environment variable TMPDIR, or /tmp]}
376 The directory where temporary files are created.
377 The environmental variable
378 @LI{TMPDIR}is used as the default value if it exists, otherwise
379 @LI{/tmp}is used.
380 @cindex edcompatible
381 @IP{edcompatible, ed [off]}
383 Remember the values of the
384 @QQ{c}
386 @QQ{g}
387 suffixes to the
388 @CO{substitute}
389 commands, instead of initializing them as unset for each new
390 command.
391 Specifying pattern and replacement strings to the
392 @CO{substitute}
393 command unsets the
394 @QQ{c}
396 @QQ{g}
397 suffixes as well.
398 @cindex escapetime
399 @IP{escapetime [1]}
401 The 10th's of a second
402 @EV{ex,vi}
403 waits for a subsequent key to complete an
404 @LI{<escape>}key mapping.
405 @cindex errorbells
406 @IP{errorbells, eb [off]}
408 @CO{Ex}
409 only.
410 @CO{Ex}
411 error messages are normally presented in inverse video.
412 If that is not possible for the terminal, setting this option causes
413 error messages to be announced by ringing the terminal bell.
414 @cindex expandtab
415 @IP{expandtab, et [off]}
417 Prevent the use of
418 @LI{<tab>}
419 characters in leading whitespace when shifting text, autoindenting,
420 indenting with
421 @CO{<control-T>},
422 or outdenting with
423 @CO{<control-D>}.
424 @cindex exrc
425 @IP{exrc, ex [off]}
427 If this option is turned on in the EXINIT environment variables,
428 or the system or $HOME startup files,
429 the local startup files are read,
430 unless they are the same as the system or $HOME startup files or
431 fail to pass the standard permission checks.
432 See the section entitled
433 @QB{Startup Information}
434 for more information.
435 @cindex extended
436 @IP{extended [off]}
438 This option causes all regular expressions to be treated as POSIX
439 1003.2 Extended Regular Expressions (which are similar to historic
440 @XR{egrep,1}
441 style expressions).
442 @cindex filec
443 @IP{filec [no default]}
445 This option adds the ability to do shell expansion when entering input
446 on the colon command line.
447 This option is set to a string.
448 Whenever the first character of that string is entered on the colon
449 command line,
450 the <blank> delimited string immediately before the cursor is expanded
451 as if it were followed by a
452 @LI{*}character, and file name expansion for the
453 @CO{ex}
454 edit command was done.
455 If no match is found, the screen is flashed and text input resumed.
456 If a single match results, that match replaces the expanded text.
457 In addition, if the single match is for a directory, a
458 @LI{/}character is appended and file completion is repeated.
459 If more than a single match results,
460 any unique prefix shared by the matches replaces the expanded text,
461 the matches are displayed,
462 and text input resumed.
463 @sp 1
464 Because of
465 @CO{vi}'s
466 parsing rules, it can be difficult to set the path completion character
467 to two command values,
468 @LI{<escape>}and
469 @LI{<tab>}.
470 To set it to
471 @LI{<escape>},
473 @QT{set filec=<literal-next><escape>}.
474 To set it to
475 @LI{<tab>},
477 @QT{set filec=\e<tab>}.
478 @sp 1
479 If the
480 @OP{cedit}
481 edit option is set to the same character as the
482 @OP{filec}
483 edit option,
484 @CO{vi}
485 will perform colon command-line editing if the character is entered as
486 the first character of the line,
487 otherwise,
488 @CO{vi}
489 will perform file name expansion.
490 @cindex flash
491 @IP{flash [on]}
493 This option causes the screen to flash instead of beeping the keyboard,
494 on error, if the terminal has the capability.
495 @cindex hardtabs
496 @IP{hardtabs, ht [8]}
498 This option defines the spacing between hardware tab settings, i.e.
499 the tab expansion done by the operating system and/or the terminal
500 itself.
502 @EV{nex,nvi}
503 never writes
504 @LI{<tab>}characters to the terminal, unlike historic versions of
505 @EV{ex,vi},
506 this option does not currently have any affect.
507 @cindex iclower
508 @IP{iclower [off]}
511 @OP{iclower}
512 edit option makes all Regular Expressions case-insensitive,
513 as long as an upper-case letter does not appear in the search string.
514 @cindex ignorecase
515 @IP{ignorecase, ic [off]}
517 This option causes regular expressions, both in
518 @CO{ex}
519 commands and in searches,
520 to be evaluated in a case-insensitive manner.
521 @cindex keytime
522 @IP{keytime [6]}
524 The 10th's of a second
525 @EV{ex,vi}
526 waits for a subsequent key to complete a key mapping.
527 @cindex leftright
528 @IP{leftright [off]}
530 @CO{Vi}
531 only.
532 This option causes the screen to be scrolled left-right to view
533 lines longer than the screen, instead of the traditional
534 @CO{vi}
535 screen interface which folds long lines at the right-hand margin
536 of the terminal.
537 @cindex lines
538 @IP{lines, li [24]}
540 @CO{Vi}
541 only.
542 The number of lines in the screen.
543 Setting this option causes
544 @EV{ex,vi}
545 to set (or reset) the environmental variable
546 @LI{LINES}.
547 See the section entitled
548 @QB{Sizing the Screen}
549 for more information.
550 @cindex lisp
551 @IP{lisp [off]}
553 @CO{Vi}
554 only.
555 This option changes the behavior of the
556 @CO{vi}
557 @CO{(},
558 @CO{)},
559 @strong{@{},
560 @strong{@}},
561 @CO{[[}
563 @CO{]]}
564 commands to match the Lisp language.
565 Also, the
566 @OP{autoindent}
567 option's behavior is changed to be appropriate for Lisp.
568 @sp 1
569 @emph{This option is not yet implemented.}
570 @cindex list
571 @IP{list [off]}
573 This option causes lines to be displayed in an unambiguous fashion.
574 Specifically, tabs are displayed as control characters, i.e.
575 @QT{^I},
576 and the ends of lines are marked with a
577 @QT{$}
578 character.
579 @cindex lock
580 @IP{lock [on]}
582 This option causes the editor to attempt to get an exclusive lock on
583 any file being edited, read or written.
584 Reading or writing a file that cannot be locked produces a warning
585 message, but no other effect.
586 Editing a file that cannot be locked results in a read only edit session,
587 as if the
588 @OP{readonly}
589 edit option were set.
590 @cindex magic
591 @IP{magic [on]}
593 This option is on by default.
594 Turning the
595 @OP{magic}
596 option off causes all regular expression characters except for
597 @QT{^}
599 @QT{$},
600 to be treated as ordinary characters.
601 To re-enable characters individually, when the
602 @OP{magic}
603 option is off,
604 precede them with a backslash
605 @QT{\e}
606 character.
607 See the section entitled
608 @QB{Regular Expressions and Replacement Strings}
609 for more information.
610 @cindex matchchars
611 @IP{matchchars [[]@{@}()<>]}
613 @CO{Vi}
614 only.
615 This option defines the character pairs used by the
616 @CO{%}
617 command.
619 @cindex matchtime
620 @IP{matchtime [7]}
622 @CO{Vi}
623 only.
624 The 10th's of a second
625 @CO{vi}
626 pauses on the matching character when the
627 @OP{showmatch}
628 option is set.
629 @cindex mesg
630 @IP{mesg [on]}
632 This option allows other users to contact you using the
633 @XR{talk,1}
635 @XR{write,1}
636 utilities, while you are editing.
637 @EV{Ex,vi}
638 does not turn message on, i.e. if messages were turned off when the
639 editor was invoked, they will stay turned off.
640 This option only permits you to disallow messages for the edit session.
641 See the
642 @XR{mesg,1}
643 utility for more information.
644 @cindex msgcat
645 @IP{msgcat [./]}
647 This option selects a message catalog to be used to display error and
648 informational messages in a specified language.
649 If the value of this option ends with a '/', it is treated as the name
650 of a directory that contains a message catalog
651 @QT{vi_XXXX},
652 where
653 @QT{XXXX}
654 is the value of the
655 @LI{LANG}environmental variable, if it's set, or the value of the
656 @LI{LC_MESSAGES}environmental variable if it's not.
657 If neither of those environmental variables are set,
658 or if the option doesn't end in a '/',
659 the option is treated as the full path name of the message catalog to use.
660 @sp 1
661 If any messages are missing from the catalog,
662 the backup text (English) is used instead.
663 @sp 1
664 See the distribution file
665 @LI{catalog/README}for additional information on building and installing message catalogs.
666 @cindex modelines
667 @IP{modelines, modeline [off]}
669 If the
670 @OP{modelines}
671 option is set,
672 @EV{ex,vi}
673 has historically scanned the first and last five lines of each file as
674 it is read for editing, looking for any
675 @CO{ex}
676 commands that have been placed in those lines.
677 After the startup information has been processed, and before the user
678 starts editing the file, any commands embedded in the file are executed.
679 @sp 1
680 Commands were recognized by the letters
681 @QQ{e}
683 @QQ{v}
684 followed by
685 @QQ{x}
687 @QQ{i},
688 at the beginning of a line or following a tab or space character,
689 and followed by a
690 @QQ{:},
692 @CO{ex}
693 command, and another
694 @QQ{:}.
695 @sp 1
696 This option is a security problem of immense proportions,
697 and should not be used under any circumstances.
698 @sp 1
699 @emph{This option will never be implemented.}
700 @comment  I cannot get a double quote to print between the square brackets
701 @comment  to save my life.  The ONLY way I've been able to get this to work
702 @comment  is with the .tr command.
703 @cindex noprint
704 @IP{noprint [""]}
706 Characters that are never handled as printable characters.
707 By default, the C library function
708 @XR{isprint,3}
709 is used to determine if a character is printable or not.
710 This edit option overrides that decision.
711 @cindex number
712 @IP{number, nu [off]}
714 Precede each line displayed with its current line number.
715 @cindex octal
716 @IP{octal [off]}
718 Display unknown characters as octal numbers
719 @PQ{"\e###"},
720 instead of the default
721 hexadecimal
722 @PQ{"\ex##"}.
723 @cindex open
724 @IP{open [on]}
726 @CO{Ex}
727 only.
728 If this option is not set, the
729 @CO{open}
731 @CO{visual}
732 commands are disallowed.
733 @cindex optimize
734 @IP{optimize, opt [on]}
736 @CO{Vi}
737 only.
738 Throughput of text is expedited by setting the terminal not to do automatic
739 carriage returns when printing more than one (logical) line of output,
740 greatly speeding output on terminals without addressable cursors when text
741 with leading white space is printed.
742 @sp 1
743 @emph{This option is not yet implemented.}
744 @cindex paragraphs
745 @IP{paragraphs, para [IPLPPPQPP LIpplpipbp]}
747 @CO{Vi}
748 only.
749 Define additional paragraph boundaries for the
750 @CO{@{}
752 @strong{@}}
753 commands.
754 The value of this option must be a character string consisting
755 of zero or more character pairs.
756 @sp 1
757 In the text to be edited, the character string
758 @LI{<newline>.<char-pair>},
759 (where
760 @LI{<char-pair>}is one of the character pairs in the option's value)
761 defines a paragraph boundary.
762 For example, if the option were set to
763 @LI{LaA<space>##},
764 then all of the following additional paragraph boundaries would be
765 recognized:
766 @sp 1
767 @example
768 <newline>.La
769 <newline>.A<space>
770 <newline>.##
771 @end example
772 @cindex path
773 @IP{path []}
775 The path option can be used to specify a <colon>-separated list of
776 paths, similar to the
777 @LI{PATH}environment variable in the shells.
778 If this option is set,
779 the name of the file to be edited is not an absolute pathname,
780 the first component of the filename is not
781 @QT{.}
783 @QT{..},
784 and the file to be edited doesn't exist in the current directory,
785 the elements of the
786 @OP{path}
787 option are sequentially searched for a file of the specified name.
788 If such a file is found, it is edited.
789 @comment  I cannot get a double quote to print between the square brackets
790 @comment  to save my life.  The ONLY way I've been able to get this to work
791 @comment  is with the .tr command.
792 @cindex print
793 @IP{print [""]}
795 Characters that are always handled as printable characters.
796 By default, the C library function
797 @XR{isprint,3}
798 is used to determine if a character is printable or not.
799 This edit option overrides that decision.
800 @cindex prompt
801 @IP{prompt [on]}
803 @CO{Ex}
804 only.
805 This option causes
806 @CO{ex}
807 to prompt for command input with a
808 @QT{:}
809 character; when it is not set, no prompt is displayed.
810 @cindex readonly
811 @IP{readonly, ro [off]}
813 This option causes a force flag to be required to attempt to write the file.
814 Setting this option is equivalent to using the
815 @strong{-R}
816 command line option,
817 or executing the
818 @CO{vi}
819 program using the name
820 @CO{view}.
821 @sp 1
823 @OP{readonly}
824 edit option is not usually persistent, like other edit options.
825 If the
826 @strong{-R}
827 command line option is set,
828 @CO{vi}
829 is executed as
830 @CO{view},
831 or the
832 @OP{readonly}
833 edit option is explicitly set,
834 all files edited in the screen will be marked readonly,
835 and the force flag will be required to write them.
836 However, if none of these conditions are true,
837 or the
838 @OP{readonly}
839 edit option is explicitly unset,
840 then the
841 @OP{readonly}
842 edit option will toggle based on the write permissions of the file currently
843 being edited as of when it is loaded into the edit buffer.
844 In other words, the
845 @OP{readonly}
846 edit option will be set if the current file lacks write permissions,
847 and will not be set if the user has write permissions for the file.
848 @cindex recdir
849 @IP{recdir [/var/tmp/vi.recover]}
851 The directory where recovery files are stored.
852 @sp 1
853 If you change the value of
854 @OP{recdir},
855 be careful to choose a directory whose contents are not regularly
856 deleted.
857 Bad choices include directories in memory based filesystems,
859 @LI{/tmp},
860 on most systems,
861 as their contents are removed when the machine is rebooted.
862 @sp 1
863 Public directories like
864 @LI{/usr/tmp}and
865 @LI{/var/tmp}are usually safe, although some sites periodically prune old files
866 from them.
867 There is no requirement that you use a public directory,
868 e.g. a sub-directory of your home directory will work fine.
869 @sp 1
870 Finally, if you change the value of
871 @OP{recdir},
872 you must modify the recovery script to operate in your chosen recovery
873 area.
874 @sp 1
875 See the section entitled
876 @QB{Recovery}
877 for further information.
878 @cindex redraw
879 @IP{redraw, re [off]}
881 @CO{Vi}
882 only.
883 The editor simulates (using great amounts of output), an intelligent
884 terminal on a dumb terminal (e.g. during insertions in
885 @CO{vi}
886 the characters to the right of the cursor are refreshed as each input
887 character is typed).
888 @sp 1
889 @emph{This option is not yet implemented.}
890 @cindex remap
891 @IP{remap [on]}
893 If this option is set,
894 it is possible to define macros in terms of other macros.
895 Otherwise, each key is only remapped up to one time.
896 For example, if
897 @QT{A}
898 is mapped to
899 @QT{B},
901 @QT{B}
902 is mapped to
903 @QT{C},
904 The keystroke
905 @QT{A}
906 will be mapped to
907 @QT{C}
908 if the
909 @OP{remap}
910 option is set, and to
911 @QT{B}
912 if it is not set.
913 @cindex report
914 @IP{report [5]}
916 Set the threshold of the number of lines that need to be changed or
917 yanked before a message will be displayed to the user.
918 For everything but the yank command, the value is the largest value
919 about which the editor is silent, i.e. by default, 6 lines must be
920 deleted before the user is notified.
921 However, if the number of lines yanked is greater than
922 @emph{or equal to}
923 the set value, it is reported to the user.
924 @cindex ruler
925 @IP{ruler [off]}
927 @CO{Vi}
928 only.
929 Display a row/column ruler on the colon command line.
930 @cindex scroll
931 @IP{scroll, scr [(environment variable LINES - 1) / 2]}
933 Set the number of lines scrolled by the
934 @CO{ex}
935 @CO{<control-D>}
937 @CO{<end-of-file>}
938 commands.
939 @sp 1
940 Historically, the
941 @CO{ex}
942 @CO{z}
943 command, when specified without a count, used two times the size of the
944 scroll value; the POSIX 1003.2 standard specified the window size, which
945 is a better choice.
946 @cindex searchincr
947 @IP{searchincr [off]}
950 @OP{searchincr}
951 edit option makes the search commands
952 @CO{/}
954 @CO{?}
955 incremental, i.e. the screen is updated and the cursor moves to the matching
956 text as the search pattern is entered.
957 If the search pattern is not found,
958 the screen is beeped and the cursor remains on the colon-command line.
959 Erasing characters from the search pattern backs the cursor up to the
960 previous matching text.
961 @cindex sections
962 @IP{sections, sect [NHSHH HUnhsh]}
964 @CO{Vi}
965 only.
966 Define additional section boundaries for the
967 @CO{[[}
969 @CO{]]}
970 commands.
972 @OP{sections}
973 option should be set to a character string consisting of zero or
974 more character pairs.
975 In the text to be edited, the character string
976 @LI{<newline>.<char-pair>},
977 (where
978 @LI{<char-pair>}is one of the character pairs in the option's value),
979 defines a section boundary in the same manner that
980 @OP{paragraphs}
981 option boundaries are defined.
982 @cindex secure
983 @IP{secure [off]}
986 @OP{secure}
987 edit option turns off all access to external programs.
988 This means that the versions of the
989 @CO{read}
991 @CO{write}
992 commands that filter text through other programs,
994 @CO{vi}
995 @CO{!}
997 @CO{<control-Z>}
998 commands,
1000 @CO{ex}
1001 @CO{!},
1002 @CO{script},
1003 @CO{shell},
1004 @CO{stop}
1006 @CO{suspend}
1007 commands and file name expansion will not be permitted.
1008 Once set,
1010 @OP{secure}
1011 edit option may not be unset.
1012 @cindex shell
1013 @IP{shell, sh [environment variable SHELL, or /bin/sh]}
1015 Select the shell used by the editor.
1016 The specified path is the pathname of the shell invoked by the
1017 @CO{vi}
1018 @CO{!}
1019 shell escape command and by the
1020 @CO{ex}
1021 @CO{shell}
1022 command.
1023 This program is also used to resolve any shell meta-characters in
1024 @CO{ex}
1025 commands.
1026 @comment  I cannot get a double quote to print between the square brackets
1027 @comment  to save my life.  The ONLY way I've been able to get this to work
1028 @comment  is with the .tr command.
1029 @cindex shellmeta
1030 @comment @IP{shellmeta [~@{[*?@$`'"\e]}
1031 @item @strong{shellmeta [~@{[*?$`'"\]}
1033 The set of characters that
1034 @CO{ex}
1035 checks for when doing file name expansion.
1036 If any of the specified characters are found in the file name arguments
1037 to the
1038 @CO{ex}
1039 commands,
1040 the arguments are expanded using the program defined by the
1041 @OP{shell}
1042 option.
1043 The default set of characters is a union of meta characters
1044 from the Version 7 and the Berkeley C shell.
1045 @cindex shiftwidth
1046 @IP{shiftwidth, sw [8]}
1048 Set the autoindent and shift command indentation width.
1049 This width is used by the
1050 @OP{autoindent}
1051 option and by the
1052 @CO{<},
1053 @CO{>},
1055 @CO{shift}
1056 commands.
1057 @cindex showmatch
1058 @IP{showmatch, sm [off]}
1060 @CO{Vi}
1061 only.
1062 This option causes
1063 @CO{vi},
1064 when a
1065 @comment QT
1066 ``@code{@}}''
1068 @QT{)}
1069 is entered, to briefly move the cursor the matching
1070 @comment QT
1071 ``@code{@{}''
1073 @QT{(}.
1074 See the
1075 @OP{matchtime}
1076 option for more information.
1077 @cindex showmode
1078 @IP{showmode, smd [off]}
1080 @CO{Vi}
1081 only.
1082 This option causes
1083 @CO{vi}
1084 to display a string identifying the current editor mode on the colon
1085 command line.
1086 The string is preceded by an asterisk (``*'') if the file has been
1087 modified since it was last completely written,
1088 @cindex sidescroll
1089 @IP{sidescroll [16]}
1091 @CO{Vi}
1092 only.
1093 Sets the number of columns that are shifted to the left or right,
1094 when
1095 @CO{vi}
1096 is doing left-right scrolling and the left or right margin is
1097 crossed.
1098 See the
1099 @OP{leftright}
1100 option for more information.
1101 @cindex slowopen
1102 @IP{slowopen, slow [off]}
1104 This option affects the display algorithm used by
1105 @CO{vi},
1106 holding off display updating during input of new text to improve
1107 throughput when the terminal in use is slow and unintelligent.
1108 @sp 1
1109 @emph{This option is not yet implemented.}
1110 @cindex sourceany
1111 @IP{sourceany [off]}
1113 If this option is turned on,
1114 @CO{vi}
1115 historically read startup files that were owned by someone other than
1116 the editor user.
1117 See the section entitled
1118 @QB{Startup Information}
1119 for more information.
1120 This option is a security problem of immense proportions,
1121 and should not be used under any circumstances.
1122 @sp 1
1123 @emph{This option will never be implemented.}
1124 @cindex tabstop
1125 @IP{tabstop, ts [8]}
1127 This option sets tab widths for the editor display.
1128 @cindex taglength
1129 @IP{taglength, tl [0]}
1131 This option sets the maximum number of characters that are considered
1132 significant in a tag name.
1133 Setting the value to 0 makes all of the characters in the tag name
1134 significant.
1135 @cindex tags
1136 @IP{tags, tag [tags /var/db/libc.tags /sys/kern/tags]}
1138 Sets the list of tags files, in search order,
1139 which are used when the editor searches for a tag.
1140 @cindex term
1141 @IP{term, ttytype, tty [environment variable TERM]}
1143 Set the terminal type.
1144 Setting this option causes
1145 @EV{ex,vi}
1146 to set (or reset) the environmental variable
1147 @LI{TERM}.
1148 @cindex terse
1149 @IP{terse [off]}
1151 This option has historically made editor messages less verbose.
1152 It has no effect in this implementation.
1153 See the
1154 @OP{verbose}
1155 option for more information.
1156 @cindex tildeop
1157 @IP{tildeop [off]}
1159 Modify the
1160 @CO{~}
1161 command to take an associated motion.
1162 @cindex timeout
1163 @IP{timeout, to [on]}
1165 If this option is set,
1166 @EV{ex,vi}
1167 waits for a specific period for a subsequent key to complete a key
1168 mapping (see the
1169 @OP{keytime}
1170 option).
1171 If the option is not set, the editor waits until enough keys are
1172 entered to resolve the ambiguity, regardless of how long it takes.
1173 @cindex ttywerase
1174 @IP{ttywerase [off]}
1176 @CO{Vi}
1177 only.
1178 This option changes how
1179 @CO{vi}
1180 does word erase during text input.
1181 If this option is set, text is broken up into two classes,
1182 blank characters and nonblank characters.
1183 Changing from one class to another marks the end of a word.
1184 @cindex verbose
1185 @IP{verbose [off]}
1187 @CO{Vi}
1188 only.
1189 @CO{Vi}
1190 historically bells the terminal for many obvious mistakes, e.g. trying
1191 to move past the left-hand margin, or past the end of the file.
1192 If this option is set, an error message is displayed for all errors.
1193 @cindex w300
1194 @IP{w300 [no default]}
1196 @CO{Vi}
1197 only.
1198 Set the window size if the baud rate is less than 1200 baud.
1199 See the
1200 @OP{window}
1201 option for more information.
1202 @cindex w1200
1203 @IP{w1200 [no default]}
1205 @CO{Vi}
1206 only.
1207 Set the window size if the baud rate is equal to 1200 baud.
1208 See the
1209 @OP{window}
1210 option for more information.
1211 @cindex w9600
1212 @IP{w9600 [no default]}
1214 @CO{Vi}
1215 only.
1216 Set the window size if the baud rate is greater than 1200 baud.
1217 See the
1218 @OP{window}
1219 option for more information.
1220 @cindex warn
1221 @IP{warn [on]}
1223 @CO{Ex}
1224 only.
1225 This option causes a warning message to the terminal if the file has
1226 been modified, since it was last written, before a
1227 @CO{!}
1228 command.
1229 @cindex window
1230 @IP{window, w, wi [environment variable LINES - 1]}
1232 This option determines the default number of lines in a screenful,
1233 as displayed by the
1234 @CO{z}
1235 command.
1236 It also determines the number of lines scrolled by the
1237 @CO{vi}
1238 commands
1239 @CO{<control-B>}
1241 @CO{<control-F>},
1242 and the default number of lines scrolled by the
1243 @CO{vi}
1244 commands
1245 @CO{<control-D>}
1247 @CO{<control-U>}.
1248 The value of window can be unrelated to the real screen size,
1249 although it starts out as the number of lines on the screen.
1250 See the section entitled
1251 @QB{Sizing the Screen}
1252 for more information.
1253 Setting the value of the
1254 @OP{window}
1255 option is the same as using the
1256 @strong{-w}
1257 command line option.
1258 @sp 1
1259 If the value of the
1260 @OP{window}
1261 option (as set by the
1262 @OP{window},
1263 @OP{w300},
1264 @OP{w1200}
1266 @OP{w9600}
1267 options) is smaller than the actual size of the screen,
1268 large screen movements will result in displaying only that smaller
1269 number of lines on the screen.
1270 (Further movements in that same area will result in the screen being
1271 filled.)
1272 This can provide a performance improvement when viewing different
1273 places in one or more files over a slow link.
1274 @sp 1
1275 Resetting the window size does not reset the default number of lines
1276 scrolled by the
1277 @CO{<control-D>}
1279 @CO{<control-U>}
1280 commands.
1281 @cindex windowname
1282 @IP{windowname [off]}
1284 @CO{Vi}
1285 changes the name of the editor's icon/window to the current file name
1286 when it's possible and not destructive, i.e.,
1287 when the editor can restore it to its original value on exit or when
1288 the icon/window will be discarded as the editor exits.
1289 If the
1290 @OP{windowname}
1291 edit option is set,
1292 @CO{vi}
1293 will change the icon/window name even when it's destructive and the
1294 icon/window name will remain after the editor exits.
1295 (This is the case for
1296 @XR{xterm,1}).
1297 @cindex wraplen
1298 @IP{wraplen, wl [0]}
1300 This option is identical to the
1301 @OP{wrapmargin}
1302 option, with the exception that it specifies the number of columns
1303 from the
1304 @emph{left}
1305 margin before the line splits, not the right margin.
1306 @sp 1
1307 If both
1308 @OP{wraplen}
1310 @OP{wrapmargin}
1311 are set, the
1312 @OP{wrapmargin}
1313 value is used.
1314 @cindex wrapmargin
1315 @IP{wrapmargin, wm [0]}
1317 @CO{Vi}
1318 only.
1319 If the value of the
1320 @OP{wrapmargin}
1321 option is non-zero,
1322 @CO{vi}
1323 will split lines so that they end at least that number of columns
1324 before the right-hand margin of the screen.
1325 (Note, the value of
1326 @OP{wrapmargin}
1328 @emph{not}
1329 a text length.
1330 In a screen that is 80 columns wide, the command
1331 @QT{:set wrapmargin=8}
1332 attempts to keep the lines less than or equal to 72 columns wide.)
1333 @sp 1
1334 Lines are split at the previous whitespace character closest to the
1335 number.
1336 Any trailing whitespace characters before that character are deleted.
1337 If the line is split because of an inserted
1338 @LI{<space>}or
1339 @LI{<tab>}character, and you then enter another
1340 @LI{<space>}character, it is discarded.
1341 @sp 1
1342 If wrapmargin is set to 0,
1343 or if there is no blank character upon which to split the line,
1344 the line is not broken.
1345 @sp 1
1346 If both
1347 @OP{wraplen}
1349 @OP{wrapmargin}
1350 are set, the
1351 @OP{wrapmargin}
1352 value is used.
1353 @cindex wrapscan
1354 @IP{wrapscan, ws [on]}
1356 This option causes searches to wrap around the end or the beginning
1357 of the file, and back to the starting point.
1358 Otherwise, the end or beginning of the file terminates the search.
1359 @cindex writeany
1360 @IP{writeany, wa [off]}
1362 If this option is set, file-overwriting checks that would usually be
1363 made before the
1364 @CO{write}
1366 @CO{xit}
1367 commands, or before an automatic write (see the
1368 @OP{autowrite}
1369 option), are not made.
1370 This allows a write to any file, provided the file permissions allow it.
1371 @end itemize