Patrick Welche <prlw1@cam.ac.uk>
[netbsd-mini2440.git] / usr.bin / vi / docs / set.opt.roff
blobe39dc810d1d72fa7891c1138150000562e839628
1 .\" Copyright (c) 1994
2 .\"     The Regents of the University of California.  All rights reserved.
3 .\"
4 .\" Redistribution and use in source and binary forms, with or without
5 .\" modification, are permitted provided that the following conditions
6 .\" are met:
7 .\" 1. Redistributions of source code must retain the above copyright
8 .\"    notice, this list of conditions and the following disclaimer.
9 .\" 2. Redistributions in binary form must reproduce the above copyright
10 .\"    notice, this list of conditions and the following disclaimer in the
11 .\"    documentation and/or other materials provided with the distribution.
12 .\" 3. All advertising materials mentioning features or use of this software
13 .\"    must display the following acknowledgement:
14 .\"     This product includes software developed by the University of
15 .\"     California, Berkeley and its contributors.
16 .\" 4. Neither the name of the University nor the names of its contributors
17 .\"    may be used to endorse or promote products derived from this software
18 .\"    without specific prior written permission.
19 .\"
20 .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
21 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23 .\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
24 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30 .\" SUCH DAMAGE.
31 .\"
32 .\"     @(#)set.opt.roff        8.5 (Berkeley) 3/22/94
33 .\"
34 There are a large number of options that may be set (or unset) to
35 change the editor's behavior.
36 This section describes the options, their abbreviations and their
37 default values.
38 .Pp
39 In each entry below, the first part of the tag line is the full name
40 of the option, followed by any equivalent abbreviations.
41 #ifdef REFERENCE
42 (Regardless of the abbreviations, it is only necessary to use the
43 minimum number of characters necessary to distinguish an abbreviation
44 from all other commands for it to be accepted, in
45 .Nm nex/nvi .
46 Historically, only the full name and the official abbreviations
47 were accepted by
48 .Nm ex/vi .
49 Using full names in your startup files and environmental variables will
50 probably make them more portable.)
51 #endif
52 The part in square brackets is the default value of the option.
53 Most of the options are boolean, i.e. they are either on or off,
54 and do not have an associated value.
55 .Pp
56 Options apply to both
57 .Nm \&ex
58 and
59 .Nm \&vi
60 modes, unless otherwise specified.
61 #ifdef REFERENCE
62 .Pp
63 For information on modifying the options or to display the options and
64 their current values, see the
65 .Dq set
66 command in the Ex Commands section.
67 #endif
68 .Bl -tag -width "XXXX" -compact
69 .It Li "altwerase [off]"
70 .Nm \&Vi
71 only.
72 #ifdef MANUAL
73 Select an alternate word erase algorithm.
74 #endif
75 #ifdef REFERENCE
76 Change how
77 .Nm \&vi
78 does word erase during text input.
79 When this option is set, text is broken up into three classes:
80 alphabetic, numeric and underscore characters, other non-blank
81 characters, and blank characters.
82 Changing from one class to another marks the end of a word.
83 In addition, the class of the first character erased is ignored
84 (which is exactly what you want when erasing pathname components).
85 #endif
86 .It Li "autoindent, ai [off]"
87 #ifdef MANUAL
88 Automatically indent new lines.
89 #endif
90 #ifdef REFERENCE
91 If this option is set, whenever you create a new line (using the
92 .Nm \&vi
93 .Sy \&A ,
94 .Sy \&a ,
95 .Sy \&C ,
96 .Sy \&c ,
97 .Sy \&I ,
98 .Sy \&i ,
99 .Sy \&O ,
100 .Sy \&o ,
101 .Sy \&R ,
102 .Sy \&r ,
103 .Sy \&S ,
105 .Sy \&s
106 commands, or the
107 .Nm \&ex
108 .Sy append ,
109 .Sy change ,
111 .Sy insert
112 commands) the new line is automatically indented to align the cursor with
113 the first non-blank character of the line from which you created it.
114 Lines are indented using tab characters to the extent possible (based on
115 the value of the
116 .Sy tabstop
117 option) and then using space characters as necessary.
118 For commands inserting text into the middle of a line, any blank characters
119 to the right of the cursor are discarded, and the first non-blank character
120 to the right of the cursor is aligned as described above.
122 The indent characters are themselves somewhat special.
123 If you do not enter more characters on the new line before moving moving to
124 another line, or entering <escape>, the indent character will be deleted and
125 the line will be empty.
126 For example, if you enter <carriage-return> twice in succession, the line
127 created by the first <carriage-return> will not have any characters in it,
128 regardless of the indentation of the previous or subsequent line.
130 Indent characters also require that you enter additional erase characters
131 to delete them.
132 For example, if you have an indented line, containing only blanks, the first
133 <word-erase> character you enter will erase up to end of the indent characters,
134 and the second will erase back to the beginning of the line.
135 (Historically, only the
136 .Sy \&^D
137 key would erase the indent characters.
138 Both the
139 .Sy \&^D
140 key and the usual erase keys work in
141 .Nm nvi .)
142 In addition, if the cursor is positioned at the end of the indent
143 characters, the keys
144 .Dq 0^D
145 will erase all of the indent characters for the current line,
146 resetting the indentation level to 0.
147 Similarly, the keys
148 .Dq ^^D
149 (i.e. a carat followed by a <control-D>) will erase all of the indent
150 characters for the current line, leaving the indentation level for
151 future created lines unaffected.
153 Finally, if
154 .Sy autoindent
155 is set, the
156 .Sy \&S
158 .Sy \&cc
159 commands change from the first non-blank of the line to the end of the
160 line, instead of from the beginning of the line to the end of the line.
161 #endif
162 .It Li "autoprint, ap [off]"
163 .Nm \&Ex
164 only.
165 #ifdef MANUAL
166 Display the current line automatically.
168 #endif
169 #ifdef REFERENCE
170 .Nm \&Ex
171 only.
172 Cause the current line to be automatically displayed after the
173 .Nm \&ex
174 commands
175 .Sy \&< ,
176 .Sy \&> ,
177 .Sy copy ,
178 .Sy delete ,
179 .Sy join ,
180 .Sy move ,
181 .Sy put ,
182 .Sy \&t ,
183 .Sy Undo ,
185 .Sy undo .
186 This automatic display is suppressed during
187 .Sy global
189 .Sy vglobal
190 commands, and for any command where optional flags are used to explicitly
191 display the line.
192 #endif
193 .It Li "autowrite, aw [off]"
194 #ifdef MANUAL
195 Write modified files automatically when changing files.
196 #endif
197 #ifdef REFERENCE
198 If this option is set, the
199 .Nm \&vi
200 .Sy \&!
201 .Sy \&^^
202 .Sy \&^]
204 .Sy \&^Z
205 commands, and the
206 .Nm \&ex
207 .Sy edit ,
208 .Sy next ,
209 .Sy rewind ,
210 .Sy stop ,
211 .Sy suspend ,
212 .Sy tag ,
213 .Sy tagpop ,
215 .Sy tagtop
216 commands automatically write the current file back to the current file name
217 if it has been modified since it was last written.
218 If the write fails, the command fails and goes no further.
220 Appending the optional force flag
221 .Dq \&!
222 to the
223 .Nm \&ex
224 commands
225 .Sy next ,
226 .Sy rewind ,
227 .Sy stop ,
228 .Sy suspend ,
229 .Sy tag ,
230 .Sy tagpop ,
232 .Sy tagtop
233 stops the automatic write from being attempted.
235 (Historically, the
236 .Sy next
237 command ignored the optional force flag.)
238 Note, the
239 .Nm \&ex
240 commands
241 .Sy edit ,
242 .Sy quit ,
243 .Sy shell ,
245 .Sy xit
247 .Em not
248 affected by the
249 .Sy autowrite
250 option.
251 #endif
252 .It Li "beautify, bf [off]"
253 #ifdef MANUAL
254 Discard control characters.
255 #endif
256 #ifdef REFERENCE
257 If this option is set, all control characters that are not currently being
258 specially interpreted, other than <tab>, <newline>, and <form-feed>, are
259 discarded from commands read in by
260 .Nm \&ex
261 from command files, and from input text entered to
262 .Nm \&vi
263 (either into the file or to the colon command line).
264 Text files read by
265 .Nm ex/vi
267 .Em not
268 affected by the
269 .Sy beautify
270 option.
271 #endif
272 .It Li "cdpath [environment variable CDPATH, or ``.'']"
273 #ifdef MANUAL
274 The directory paths used as path prefixes for the
275 .Sy cd
276 command.
277 #endif
278 #ifdef REFERENCE
279 This option is used to specify a colon separated list of directories
280 which are used as path prefixes for any relative path names used as
281 arguments for the
282 .Sy cd
283 command.
284 The value of this option defaults to the value of the environmental
285 variable
286 .Ev CDPATH
287 if it is set, otherwise to the current directory.
288 For compatibility with the POSIX 1003.2 shell, the
289 .Sy cd
290 command does
291 .Em not
292 check the current directory as a path prefix for relative path names
293 unless it is explicitly specified.
294 It may be so specified by entering an empty string or a
295 .Dq \&.
296 into the
297 .Ev CDPATH 
298 variable or the option value.
299 #endif
300 .It Li "columns, co [80]"
301 #ifdef MANUAL
302 Set the number of columns in the screen.
303 #endif
304 #ifdef REFERENCE
305 The number of columns in the screen.
306 Setting this option causes
307 .Nm ex/vi
308 to set (or reset) the environmental variable
309 .Ev COLUMNS .
310 See the SCREEN SIZING section for more information.
311 #endif
312 .It Li "comment [off]"
313 .Nm \&Vi
314 only.
315 #ifdef MANUAL
316 Skip leading comments in files.
317 #endif
318 #ifdef REFERENCE
319 If the first non-empty line of the file begins with the string
320 .Dq \&/\&* ,
321 this option causes
322 .Nm \&vi
323 to skip to the end of that C comment (probably a terribly boring
324 legal notice) before displaying the file.
325 #endif
326 .It Li "directory, dir [environment variable TMPDIR, or /tmp]"
327 #ifdef MANUAL
328 The directory where temporary files are created.
329 #endif
330 #ifdef REFERENCE
331 The directory where temporary files are created.
332 The environmental variable
333 .Ev TMPDIR
334 is used as the default value if it exists, otherwise
335 .Pa /tmp
336 is used.
337 #endif
338 .It Li "edcompatible, ed [off]"
339 #ifdef MANUAL
340 Modify the behavior of certain suffices for the
341 .Nm ex
342 .Sy substitute
343 command.
344 #endif
345 #ifdef REFERENCE
346 This option causes the presence or absence of
347 .Sy \&g
349 .Sy \&c
350 suffixes on
351 .Sy substitute
352 commands to be remembered,
353 and to be toggled by repeating the suffices.
354 The suffix
355 .Sy \&r
356 makes the substitution be as in the
357 .Sy \&~
358 command, instead of like the
359 .Sy \&&
360 command.
361 #endif
363 .Em "This option is not yet implemented."
364 .It Li "errorbells, eb [off]"
365 .Nm \&Ex
366 only.
367 #ifdef MANUAL
368 Precede error messages with a bell.
369 #endif
370 #ifdef REFERENCE
371 Causes
372 .Nm \&ex
373 error messages to be preceded by a bell.
374 #endif
376 .Em "This option is not yet implemented."
377 .It Li "exrc, ex [off]"
378 #ifdef MANUAL
379 Never read startup files in the local directory.
380 #endif
381 #ifdef REFERENCE
382 If this option is turned off in the system or $HOME startup files,
383 the local startup files are never read (unless they are the same
384 as the system or $HOME startup files).
385 Turning it on has no effect, i.e. the normal checks for local startup
386 files are performed, regardless.
387 See the STARTUP INFORMATION section for more information.
388 #endif
389 .It Li "extended [off]"
390 #ifdef MANUAL
391 Regular expressions are extended (i.e.
392 .Xr egrep 1
393 style) expressions.
394 #endif
395 #ifdef REFERENCE
396 This option causes all regular expressions to be treated as POSIX
397 1003.2 extended regular expressions (which are similar to historic
398 .Xr egrep 1
399 style expressions).
400 #endif
401 .It Li "flash [on]"
402 #ifdef MANUAL
403 Flash the screen instead of beeping the keyboard on error.
404 #endif
405 #ifdef REFERENCE
406 This option causes the screen to flash instead of beeping the keyboard,
407 on error, if the terminal has the capability.
408 #endif
409 .It Li "hardtabs, ht [8]"
410 #ifdef MANUAL
411 Set the spacing between hardware tab settings.
412 #endif
413 #ifdef REFERENCE
414 This option defines the spacing between hardware tab settings, i.e.
415 the tab expansion done by the operating system and/or the terminal
416 itself.
418 .Nm nex/nvi
419 never writes tabs to the terminal, unlike historic versions of
420 .Nm ex/vi ,
421 this option does not currently have any affect.
422 #endif
423 .It Li "ignorecase, ic [off]"
424 #ifdef MANUAL
425 Ignore case differences in regular expressions.
426 #endif
427 #ifdef REFERENCE
428 This option causes regular expressions, both in
429 .Nm \&ex
430 commands and in searches,
431 to be evaluated in a case-insensitive manner.
432 #endif
433 .It Li "keytime [6]"
434 The 10th's of a second
435 .Nm ex/vi
436 waits for a subsequent key to complete a key mapping.
437 .It Li "leftright [off]"
438 .Nm \&Vi
439 only.
440 #ifdef MANUAL
441 Do left-right scrolling.
442 #endif
443 #ifdef REFERENCE
444 This option causes the screen to be scrolled left-right to view
445 lines longer than the screen, instead of the traditional
446 .Nm \&vi
447 screen interface which folds long lines at the right-hand margin
448 of the terminal.
449 #endif
450 .It Li "lines, li [24]"
451 .Nm \&Vi
452 only.
453 #ifdef MANUAL
454 Set the number of lines in the screen.
455 #endif
456 #ifdef REFERENCE
457 The number of lines in the screen.
458 Setting this option causes
459 .Nm ex/vi
460 to set (or reset) the environmental variable
461 .Ev LINES .
462 See the Screen Sizing section for more information.
463 #endif
464 .It Li "lisp [off]"
465 .Nm \&Vi
466 only.
467 #ifdef MANUAL
468 Modify various search commands and options to work with Lisp.
469 #endif
470 #ifdef REFERENCE
471 This option changes the behavior of the
472 .Nm \&vi
473 .Sy \&( ,
474 .Sy \&) ,
475 .Sy \&{ ,
476 .Sy \&} ,
477 .Sy \&[[
479 .Sy \&]]
480 commands to match the Lisp language.
481 Also, the
482 .Sy autoindent
483 option's behavior is changed to be appropriate for Lisp.
484 #endif
486 .Em "This option is not yet implemented."
487 .It Li "list [off]"
488 #ifdef MANUAL
489 Display lines in an unambiguous fashion.
490 #endif
491 #ifdef REFERENCE
492 This option causes lines to be displayed in an unambiguous fashion.
493 Specifically, tabs are displayed as control characters, i.e.
494 .Dq \&^I ,
495 and the ends of lines are marked with a
496 .Dq \&$
497 character.
498 #endif
499 .It Li "magic [on]"
500 #ifdef MANUAL
501 Treat certain characters specially in regular expressions.
502 #endif
503 #ifdef REFERENCE
504 This option is on by default.
505 Turning the
506 .Sy magic
507 option off causes all regular expression characters except for
508 .Dq \&^
510 .Dq \&$ ,
511 to be treated as ordinary characters.
512 To re-enable characters individually, when the
513 .Sy magic
514 option is off,
515 precede them with an
516 .Dq \&\e .
517 See the REGULAR EXPRESSIONS AND REPLACEMENT STRINGS section for
518 more information.
519 #endif
520 .It Li "matchtime [7]"
521 .Nm \&Vi
522 only.
523 The 10th's of a second
524 .Nm ex/vi
525 pauses on the matching character when the
526 .Sy showmatch
527 option is set.
528 .It Li "mesg [on]"
529 #ifdef MANUAL
530 Permit messages from other users.
531 #endif
532 #ifdef REFERENCE
533 This option allows other users to contact you using the
534 .Xr talk 1
536 .Xr write 1
537 utilities, while you are editing.
538 .Nm Ex/vi
539 does not turn message on, i.e. if messages were turned off when the
540 editor was invoked, they will stay turned off.
541 This option only permits you to disallow messages for the edit session.
542 See the
543 .Xr mesg 1
544 utility for more information.
545 #endif
546 .It Li "modelines, modeline [off]"
547 #ifdef MANUAL
548 Read the first and last few lines of each file for
549 .Nm ex
550 commands.
551 #endif
552 #ifdef REFERENCE
553 If the
554 .Sy modelines
555 option is set,
556 .Nm ex/vi
557 has historically scanned the first and last five lines of each file as
558 it is read for editing, looking for any
559 .Nm \&ex
560 commands that have been placed in those lines.
561 After the startup information has been processed, and before the user
562 starts editing the file, any commands embedded in the file are executed.
563 Commands are recognized by the letters
564 .Dq \&e
566 .Dq \&v
567 followed by
568 .Dq \&x
570 .Dq \&i ,
571 at the beginning of a line or following a tab or space character,
572 and followed by a
573 .Dq \&: ,
575 .Nm \&ex
576 command, and another
577 .Dq \&: .
578 This option is a security problem of immense proportions,
579 and should not be used under any circumstances.
580 #endif
582 .Em "This option will never be implemented."
583 .It Li "number, nu [off]"
584 Precede each line displayed with its current line number.
585 .It Li "open [on]"
586 .Nm \&Ex
587 only.
588 If this option is not set, the
589 .Sy open
591 .Sy visual
592 commands are disallowed.
593 .It Li "optimize, opt [on]"
594 .Nm \&Vi
595 only.
596 #ifdef MANUAL
597 Optimize text throughput to dumb terminals.
598 #endif
599 #ifdef REFERENCE
600 Throughput of text is expedited by setting the terminal to no do automatic
601 carriage returns when printing more than one (logical) line of output,
602 greatly speeding output on terminals without addressable cursors when text
603 with leading white space is printed.
604 #endif
606 .Em "This option is not yet implemented."
607 .It Li "paragraphs, para [IPLPPPQPP LIpplpipbp]"
608 .Nm \&Vi
609 only.
610 Define additional paragraph boundaries for the
611 .Sy \&{
613 .Sy \&}
614 commands.
615 #ifdef REFERENCE
616 The value of this option must be a character string consisting
617 of zero or more character pairs.
619 In the text to be edited, the character string <newline>.<char-pair>,
620 (where <char-pair> is one of the character pairs in the option's value)
621 defines a paragraph boundary.
622 For example, if the option were set to
623 .Dq "LaA ##" ,
624 then all of the following additional paragraph boundaries would be
625 recognized:
626 .Bd -literal -offset indent -compact
627 <newline>.La
628 <newline>.A<space>
629 <newline>.##
631 #endif
632 .It Li "prompt [on]"
633 .Nm \&Ex
634 only.
635 #ifdef MANUAL
636 Display a command prompt.
637 #endif
638 #ifdef REFERENCE
639 This option causes
640 .Nm \&ex
641 to prompt for command input with a
642 .Dq \&:
643 character; when it's not set, no prompt is displayed.
644 #endif
645 .It Li "readonly, ro [off]"
646 #ifdef MANUAL
647 Mark the file as read-only.
648 #endif
649 #ifdef REFERENCE
650 This option causes a force flag to be required to attempt to write
651 the file back to the original file name.
652 Setting this option is equivalent to using the
653 .Fl R
654 command line option, or editing a file which lacks write permission.
655 #endif
656 .It Li "recdir [/var/tmp/vi.recover]"
657 The directory where recovery files are stored.
658 .It Li "redraw, re [off]"
659 .Nm \&Vi
660 only.
661 #ifdef MANUAL
662 Simulate an intelligent terminal on a dumb one.
663 #endif
664 #ifdef REFERENCE
665 The editor simulates (using great amounts of output), an intelligent
666 terminal on a dumb terminal (e.g. during insertions in visual mode
667 the characters to the right of the cursor are refreshed as each input
668 character is typed).
669 #endif
671 .Em "This option is not yet implemented."
672 .It Li "remap [on]"
673 #ifdef MANUAL
674 Remap keys until resolved.
675 #endif
676 #ifdef REFERENCE
677 If this option is set,
678 it's possible to define macros in terms of other macros.
679 Otherwise, each key is only remapped up to one time.
680 For example, if
681 .Dq \&A
682 is mapped to
683 .Dq \&B ,
685 .Dq \&B
686 is mapped to
687 .Dq \&C ,
688 The keystroke
689 .Dq \&A
690 will be mapped to
691 .Dq \&C
693 .Sy remap
694 is set, and to
695 .Dq \&B
696 if it is not set.
697 #endif
698 .It Li "remapmax [on]"
699 #ifdef MANUAL
700 Limit the number of times a key may be remapped.
701 #endif
702 #ifdef REFERENCE
703 If this option is set, a key may only be remapped 50 times.
704 If it is not set, a key may be remapped an infinite number of times,
705 and the editor can be placed into infinite loops.
706 #endif
707 .It Li "report [5]"
708 #ifdef MANUAL
709 Set the number of lines about which the editor reports changes.
710 #endif
711 #ifdef REFERENCE
712 Set the threshold of the number of lines that need to be changed
713 before a message will be displayed to the user.
714 The value is the largest value about which the editor is silent,
715 i.e. by default, 6 lines must change before the user is notified.
716 #endif
717 .It Li "ruler [off]"
718 .Nm \&Vi
719 only.
720 Display a row/column ruler on the colon command line.
721 .It Li "scroll, scr [window / 2]"
722 #ifdef MANUAL
723 Set the number of lines scrolled.
724 #endif
725 #ifdef REFERENCE
726 Set the number of lines scrolled by the
727 .Nm \&vi
728 commands
729 .Sy \&^D
731 .Sy \&^U .
733 Historically, the
734 .Nm ex
735 .Sy z
736 command, when specified without a count, used two times the size of the
737 scroll value; the POSIX 1003.2 standard specified the window size, which
738 is a better choice.
739 #endif
740 .It Li "sections, sect [NHSHH HUnhsh]"
741 .Nm \&Vi
742 only.
743 Define additional section boundaries for the
744 .Sy \&[[
746 .Sy \&]]
747 commands.
748 #ifdef REFERENCE
750 .Sy sections
751 option should be set to a character string consisting of zero or
752 more character pairs.
753 In the text to be edited, the character string <newline>.<char-pair>,
754 (where <char-pair> is one of the character pairs in the option's value),
755 defines a section boundary in the same manner that
756 .Sy paragraph
757 option boundaries are defined.
758 #endif
759 .It Li "shell, sh [environment variable SHELL, or /bin/sh]"
760 Select the shell used by the editor.
761 #ifdef REFERENCE
762 The specified path is the pathname of the shell invoked by the
763 .Nm \&vi
764 .Sy \&!
765 shell escape command and by the
766 .Nm \&ex
767 .Sy shell
768 command.
769 This program is also used to resolve any shell meta-characters in
770 .Nm \&ex
771 commands.
772 #endif
773 .It Li "shiftwidth, sw [8]"
774 Set the autoindent and shift command indentation width.
775 #ifdef REFERENCE
776 This width is used by the
777 .Sy autoindent
778 option and by the
779 .Sy \&< ,
780 .Sy \&> ,
782 .Sy shift
783 commands.
784 #endif
785 .It Li "showdirty [off]"
786 .Nm \&Vi
787 only.
788 Display an asterisk on the colon command line if the file has been modified.
789 .It Li "showmatch, sm [off]"
790 .Nm \&Vi
791 only.
792 #ifdef MANUAL
793 Note matching
794 .Dq \&{
796 .Dq \&(
798 .Dq \&}
800 .Dq \&)
801 characters.
802 #endif
803 #ifdef REFERENCE
804 This option causes
805 .Nm \&vi ,
806 when a
807 .Dq \&}
809 .Dq \&)
810 is entered, to briefly move the cursor the matching
811 .Dq \&{
813 .Dq \&( .
814 See the
815 .Sy matchtime
816 option for more information.
817 #endif
818 .It Li "showmode [off]"
819 .Nm \&Vi
820 only.
821 #ifdef MANUAL
822 Display the current editor mode (command or input).
823 #endif
824 #ifdef REFERENCE
825 This option causes
826 .Nm \&vi
827 to display the strings
828 .Dq Command
830 .Dq Input
831 on the colon command line, based on the current mode of the editor.
832 #endif
833 .It Li "sidescroll [16]"
834 .Nm \&Vi
835 only.
836 #ifdef MANUAL
837 Set the amount a left-right scroll will shift.
838 #endif
839 #ifdef REFERENCE
840 Sets the number of columns that are shifted to the left or right,
841 when
842 .Nm \&vi
843 is doing left-right scrolling and the left or right margin is
844 crossed.
845 See the
846 .Sy leftright
847 option for more information.
848 #endif
849 .It Li "slowopen, slow [off]"
850 #ifdef MANUAL
851 Delay display updating during text input.
852 #endif
853 #ifdef REFERENCE
854 This option affects the display algorithm used by
855 .Nm \&vi ,
856 holding off display updating during input of new text to improve
857 throughput when the terminal in use is slow and unintelligent.
858 #endif
860 .Em "This option is not yet implemented."
861 .It Li "sourceany [off]"
862 #ifdef MANUAL
863 Read startup files not owned by the current user.
864 #endif
865 #ifdef REFERENCE
866 If this option is turned on,
867 .Nm \&vi
868 historically read startup files that were owned by someone other than
869 the editor user.
870 See the STARTUP INFORMATION section for more information.
871 This option is a security problem of immense proportions,
872 and should not be used under any circumstances.
873 #endif
875 .Em "This option will never be implemented."
876 .It Li "tabstop, ts [8]"
877 This option sets tab widths for the editor display.
878 .It Li "taglength, tl [0]"
879 #ifdef MANUAL
880 Set the number of significant characters in tag names.
881 #endif
882 #ifdef REFERENCE
883 This option sets the maximum number of characters that are considered
884 significant in a tag name.
885 Setting the value to 0 makes all of the characters in the tag name
886 significant.
887 #endif
888 .It Li "tags, tag [tags /var/db/libc.tags /sys/kern/tags]"
889 #ifdef MANUAL
890 Set the list of tags files.
891 #endif
892 #ifdef REFERENCE
893 Sets the list of tags files, in search order,
894 which are used when the editor searches for a tag.
895 #endif
896 .It Li "term, ttytype, tty [environment variable TERM]"
897 Set the terminal type.
898 #ifdef REFERENCE
899 Setting this option causes
900 .Nm ex/vi
901 to set (or reset) the environmental variable
902 .Ev TERM .
903 #endif
904 .It Li "terse [off]"
905 This option has historically made editor messages less verbose.
906 It has no effect in this implementation.
907 #ifdef REFERENCE
908 See the
909 .Sy verbose
910 option for more information.
911 #endif
912 .It Li "timeout, to [on]"
913 #ifdef MANUAL
914 Time out on keys which may be mapped.
915 #endif
916 #ifdef REFERENCE
917 If this option is set,
918 .Nm ex/vi
919 waits for a specific period for a subsequent key to complete a key
920 mapping (see the
921 .Sy keytime
922 option).
923 If the option is not set, the editor waits until enough keys are
924 entered to resolve the ambiguity, regardless of how long it takes.
925 #endif
926 .It Li "ttywerase [off]"
927 .Nm \&Vi
928 only.
929 #ifdef MANUAL
930 Select an alternate erase algorithm.
931 #endif
932 #ifdef REFERENCE
933 This option changes how
934 .Nm \&vi
935 does word erase during text input.
936 If this option is set, text is broken up into two classes,
937 blank characters and non-blank characters.
938 Changing from one class to another marks the end of a word.
939 #endif
940 .It Li "verbose [off]"
941 .NM \&Vi
942 only.
943 #ifdef MANUAL
944 Display an error message for every error.
945 #endif
946 #ifdef REFERENCE
947 .Nm \&Vi
948 historically bells the terminal for many obvious mistakes, e.g. trying
949 to move past the left-hand margin, or past the end of the file.
950 If this option is set, an error message is displayed for all errors.
951 #endif
952 .It Li "w300 [no default]"
953 .Nm \&Vi
954 only.
955 Set the window size if the baud rate is less than 1200 baud.
956 #ifdef REFERENCE
957 See the
958 .Sy window
959 option for more information.
960 #endif
961 .It Li "w1200 [no default]"
962 .Nm \&Vi
963 only.
964 Set the window size if the baud rate is equal to 1200 baud.
965 #ifdef REFERENCE
966 See the
967 .Sy window
968 option for more information.
969 #endif
970 .It Li "w9600 [no default]"
971 .Nm \&Vi
972 only.
973 Set the window size if the baud rate is greater than 1200 baud.
974 #ifdef REFERENCE
975 See the
976 .Sy window
977 option for more information.
978 #endif
979 .It Li "warn [on]"
980 .Nm \&Ex
981 only.
982 This option causes a warning message to the terminal if the file has
983 been modified, since it was last written, before a
984 .Sy \&!
985 command.
986 .It Li "window, w, wi [environment variable LINES]"
987 #ifdef MANUAL
988 Set the window size for the screen.
989 #endif
990 #ifdef REFERENCE
991 This option determines the default number of lines in a screenful,
992 as written by the
993 .Sy \&z
994 command.
995 It also determines the number of lines scrolled by the
996 .Nm \&vi
997 commands
998 .Sy \&^F
1000 .Sy \&^B .
1001 The value of window can be unrelated to the real screen size,
1002 although it starts out as the number of lines on the screen (see
1003 the SCREEN SIZING section).
1004 Setting the value of the
1005 .Sy window
1006 option is the same as using the
1007 .Fl w
1008 command line option.
1010 If the value of
1011 .Sy window
1012 (as set by the
1013 .Sy window ,
1014 .Sy w300 ,
1015 .Sy w1200
1017 .Sy w9600
1018 options) is smaller than the actual size of the screen, large screen
1019 movements will result in displaying only that smaller number of lines
1020 on the screen.
1021 (Further movements in that same area will result in the screen being
1022 filled.)
1023 This can provide a performance improvement when viewing different
1024 places in one or more files over a slow link.
1025 #endif
1026 .It Li "wrapmargin, wm [0]"
1027 .Nm \&Vi
1028 only.
1029 #ifdef MANUAL
1030 Break lines automatically when they reach the right-hand margin.
1031 #endif
1032 #ifdef REFERENCE
1033 If the value of wrapmargin is non-zero,
1034 .Nm \&vi
1035 will break lines, that are more than that number of characters long,
1036 into two lines at the blank character closest to the value.
1037 If wrapmargin is 0,
1038 or if there is no blank character upon which to break the line,
1039 the line will not be broken.
1040 #endif
1041 .It Li "wrapscan, ws [on]"
1042 #ifdef MANUAL
1043 Set searches to wrap around the end or beginning of the file.
1044 #endif
1045 #ifdef REFERENCE
1046 This option causes searches to wrap around the end or the beginning
1047 of the file, and back to the starting point.
1048 Otherwise, the end or beginning of the file terminates the search.
1049 #endif
1050 .It Li "writeany, wa [off]"
1051 #ifdef MANUAL
1052 Turn off file-overwriting checks.
1053 #endif
1054 #ifdef REFERENCE
1055 If this option is set, file-overwriting checks that would usually be
1056 made before the
1057 .Sy write
1059 .Sy xit
1060 commands, or before an automatic write (see the
1061 .Sy autowrite
1062 option), are not made.
1063 This allows a write to any file, provided the file permissions allow it.
1064 #endif