Expand PMF_FN_* macros.
[netbsd-mini2440.git] / dist / nvi / docs / vi.ref / ex.cmd.texi
blob5b151723e85e2d269bf3726f3cc1f89f302fe127
1 @comment  Copyright (c) 1994
2 @c $NetBSD$
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: ex.cmd.texi,v 8.2 2001/08/20 16:05:50 skimo Exp (Berkeley) Date: 2001/08/20 16:05:50
10 @comment 
11 @chapter Ex Description
13 The following words have special meanings for
14 @CO{ex}
15 commands.
16 @itemize @bullet
17 @cindex "<end-of-file>"
18 @IP{<end-of-file>}
20 The end-of-file character is used to scroll the screen in the
21 @CO{ex}
22 editor.
23 This character is normally
24 @LI{<control-D>}.
25 However, whatever character is set for the current terminal is supported
26 as well as
27 @LI{<control-D>}.
28 @cindex "line"
29 @IP{line}
31 A single-line address, given in any of the forms described in the
32 section entitled
33 @QB{Ex Addressing} .
34 The default for
35 @LI{line}is the current line.
36 @cindex "range"
37 @IP{range}
39 A line, or a pair of line addresses, separated by a comma or semicolon.
40 (See the section entitled
41 @QB{Ex Addressing}
42 for more information.)
43 The default for range is the current line
44 @emph{only},
45 i.e.
46 @QT{.,.}.
47 A percent sign
48 @PQ{%}
49 stands for the range
50 @QT{1,$}.
51 The starting address must be less than, or equal to, the ending address.
52 @cindex "count"
53 @IP{count}
55 A positive integer, specifying the number of lines to be affected by
56 the command; the default is 1.
57 Generally, a count past the end-of-file may be specified, e.g. the
58 command
59 @QT{p 3000}
60 in a 10 line file is acceptable, and will print from the current line
61 through the last line in the file.
62 @cindex "flags"
63 @IP{flags}
65 One or more of the characters
66 @QQ{#},
67 @QQ{p},
68 and
69 @QQ{l}.
70 When a command that accepts these flags completes, the addressed line(s)
71 are written out as if by the corresponding
72 @CO{#},
73 @CO{l}
75 @CO{p}
76 commands.
77 In addition, any number of
78 @QT{+}
80 @QT{-}
81 characters can be specified before, after, or during the flags, in which
82 case the line written is not necessarily the one affected by the command,
83 but rather the line addressed by the offset address specified.
84 The default for
85 @LI{flags}is none.
86 @cindex "file"
87 @IP{file}
89 A pattern used to derive a pathname; the default is the current file.
90 File names are subjected to normal
91 @XR{sh,1}
92 word expansions.
93 @end itemize
95 Anywhere a file name is specified, it is also possible to use
96 the special string
97 @QT{/tmp}.
98 This will be replaced with a temporary file name which can be used
99 for temporary work, e.g.
100 @QT{:e /tmp}
101 creates and edits a new file.
103 If both a count and a range are specified for commands that use either,
104 the starting line for the command is the
105 @emph{last}
106 line addressed by the range, and
107 @LI{count}- 1
108 subsequent lines are affected by the command, e.g. the command
109 @QT{2,3p4}
110 prints out lines 3, 4, 5 and 6.
112 When only a line or range is specified, with no command, the implied
113 command is either a
114 @CO{list},
115 @CO{number}
117 @CO{print}
118 command.
119 The command used is the most recent of the three commands to have been
120 used (including any use as a flag).
121 If none of these commands have been used before, the
122 @CO{print}
123 command is the implied command.
124 When no range or count is specified and the command line is a blank line,
125 the current line is incremented by 1 and then the current line is displayed.
127 Zero or more whitespace characters may precede or follow the addresses,
128 count, flags, or command name.
129 Any object following a command name (such as buffer, file, etc.),
130 that begins with an alphabetic character,
131 should be separated from the command name by at least one whitespace
132 character.
134 Any character, including
135 @LI{<carriage-return>},
136 @QT{%}
138 @QT{#}
139 retain their literal value when preceded by a backslash.
140 @chapter Ex Commands
142 The following section describes the commands available in the
143 @CO{ex}
144 editor.
145 In each entry below, the tag line is a usage synopsis for the command.
147 Each command can be entered as the abbreviation
148 (those characters in the synopsis command word preceding the
149 @QQ{[}
150 character),
151 the full command (all characters shown for the command word,
152 omitting the
153 @QQ{[}
155 @QQ{]}
156 characters),
157 or any leading subset of the full command down to the abbreviation.
158 For example, the args command (shown as
159 @QT{ar[gs]}
160 in the synopsis)
161 can be entered as
162 @QT{ar},
163 @QT{arg}
165 @QT{args}.
167 Each
168 @CO{ex}
169 command described below notes the new current line after it
170 is executed, as well as any options that affect the command.
171 @cindex DOUBLEQUOTE
172 @deftypefn Command {} {"}
174 A comment.
175 Command lines beginning with the double-quote character
176 @PQ{"}
177 are ignored.
178 This permits comments in editor scripts and startup files.
179 @end deftypefn
180 @cindex "<control-D>"
181 @cindex "<end-of-file>"
182 @deftypefn Command {} {<control-D>}
184 @deftypefnx Command {} {<end-of-file>}
186 Scroll the screen.
187 Write the next N lines, where N is the value of the
188 @OP{scroll}
189 option.
190 The command is the end-of-file terminal character, which may be
191 different on different terminals.
192 Traditionally, it is the
193 @LI{<control-D>}key.
194 @sp 1
195 Historically, the
196 @CO{eof}
197 command ignored any preceding count, and the
198 @LI{<end-of-file>}character was ignored unless it was entered as the first character
199 of the command.
200 This implementation treats it as a command
201 @emph{only}
202 if entered as the first character of the command line, and otherwise
203 treats it as any other character.
204 @table @asis
205 @item Line:
206 Set to the last line written.
207 @item Options:
208 Affected by the
209 @OP{scroll}
210 option.
211 @end table
212 @end deftypefn
213 @cindex "!"
214 @deftypefn Command {} {!} {argument(s)}
216 @deftypefnx Command {}  {[range]!} {argument(s)}
217 Execute a shell command, or filter lines through a shell command.
218 In the first synopsis, the remainder of the line after the
219 @QT{!}
220 character is passed to the program named by the
221 @OP{shell}
222 option, as a single argument.
223 @sp 1
224 Within the rest of the line,
225 @QT{%}
227 @QT{#}
228 are expanded into the current and alternate pathnames, respectively.
229 The character
230 @QT{!}
231 is expanded with the command text of the previous
232 @CO{!}
233 command.
234 (Therefore, the command
235 @CO{!!}
236 repeats the previous
237 @CO{!}
238 command.)
239 The special meanings of
240 @QT{%},
241 @QT{#},
243 @QT{!}
244 can be overridden by escaping them with a backslash.
245 If no
246 @CO{!}
248 @CO{:!}
249 command has yet been executed, it is an error to use an unescaped
250 @QT{!}
251 character.
253 @CO{!}
254 command does
255 @emph{not}
256 do shell expansion on the strings provided as arguments.
257 If any of the above expansions change the command the user entered,
258 the command is redisplayed at the bottom of the screen.
259 @sp 1
260 @CO{Ex}
261 then executes the program named by the
262 @OP{shell}
263 option, with a
264 @strong{-c}
265 flag followed by the arguments (which are bundled into a single argument).
266 @sp 1
268 @CO{!}
269 command is permitted in an empty file.
270 @sp 1
271 If the file has been modified since it was last completely written,
273 @CO{!}
274 command will warn you.
275 @sp 1
276 A single
277 @QT{!}
278 character is displayed when the command completes.
279 @sp 1
280 In the second form of the
281 @CO{!}
282 command, the remainder of the line after the
283 @QT{!}
284 is passed to the program named by the
285 @OP{shell}
286 option, as described above.
287 The specified lines are passed to the program as standard input,
288 and the standard and standard error output of the program replace
289 the original lines.
290 @table @asis
291 @item Line:
292 Unchanged if no range was specified, otherwise set to the first
293 line of the range.
294 @item Options:
295 Affected by the
296 @OP{shell}
298 @OP{warn}
299 options.
300 @end table
301 @end deftypefn
302 @cindex "#"
303 @deftypefn Command {[range]} {#} {[count] [flags]}
305 @cindex "number"
306 @deftypefnx Command  {[range]} {nu[mber]} {[count] [flags]}
307 Display the selected lines, each preceded with its line number.
308 @sp 1
309 The line number format is
310 @QQ{%6d},
311 followed by two spaces.
312 @table @asis
313 @item Line:
314 Set to the last line displayed.
315 @item Options:
316 Affected by the
317 @OP{list}
318 option.
319 @end table
320 @end deftypefn
321 @cindex "@@"
322 @deftypefn Command {@@} {buffer}
324 @cindex "*"
325 @deftypefnx Command {}  {*} {buffer}
326 Execute a buffer.
327 Each line in the named buffer is executed as an
328 @CO{ex}
329 command.
330 If no buffer is specified, or if the specified buffer is
331 @QT{@@}
333 @QT{*},
334 the last buffer executed is used.
335 @end deftypefn
336 @cindex <
337 @deftypefn Command {[range]} {<[< ...]} {[count] [flags]}
339 Shift lines left or right.
340 The specified lines are shifted to the left (for the
341 @CO{<}
342 command) or right (for the
343 @CO{>}
344 command), by the number of columns specified by the
345 @OP{shiftwidth}
346 option.
347 Only leading whitespace characters are deleted when shifting left;
348 once the first column of the line contains a nonblank character,
350 @CO{shift}
351 command will succeed, but the line will not be modified.
352 @sp 1
353 If the command character
354 @CO{<}
356 @CO{>}
357 is repeated more than once, the command is repeated once for each
358 additional command character.
359 @table @asis
360 @item Line:
361 If the current line is set to one of the lines that are affected
362 by the command, it is unchanged.
363 Otherwise, it is set to the first nonblank character of the lowest
364 numbered line shifted.
365 @item Options:
366 Affected by the
367 @OP{shiftwidth}
368 option.
369 @end table
370 @end deftypefn
371 @cindex =
372 @deftypefn Command {[line]} {=} {[flags]}
374 Display the line number of
375 @LI{line}(which defaults to the last line in the file).
376 @table @asis
377 @item Line:
378 Unchanged.
379 @item Options:
380 None.
381 @end table
382 @end deftypefn
383 @cindex >
384 @deftypefn Command {[range]} {>[> ...]} {[count] [flags]}
386 Shift right.
387 The specified lines are shifted to the right by the number of columns
388 specified by the
389 @OP{shiftwidth}
390 option, by inserting tab and space characters.
391 Empty lines are not changed.
392 @sp 1
393 If the command character
394 @QT{>}
395 is repeated more than once, the command is repeated once for each
396 additional command character.
397 @table @asis
398 @item Line:
399 Set to the last line modified by the command.
400 @item Options:
401 Affected by the
402 @OP{shiftwidth}
403 option.
404 @end table
405 @end deftypefn
406 @cindex abbrev
407 @deftypefn Command {} {ab[brev]} {lhs rhs}
409 Add an abbreviation to the current abbreviation list.
410 When inserting text in
411 @CO{vi},
412 each time a non-word character is entered after a word character,
413 a set of characters ending at the word character are checked for
414 a match with
415 @LI{lhs}.
416 If a match is found, they are replaced with
417 @LI{rhs}.
418 The set of characters that are checked for a match are defined as follows,
419 for inexplicable historical reasons.
420 If only one or two characters were entered before the non-word character
421 that triggered the check,
422 and after the beginning of the insertion,
423 or the beginning of the line or the file,
424 or the last
425 @LI{<blank>}character that was entered,
426 then the one or the both characters are checked for a match.
427 Otherwise, the set includes both characters,
428 as well as the characters that precede them that are the same word
429 class (i.e. word or non-word) as the
430 @strong{second}
431 to last character entered before the non-word character that triggered
432 the check,
433 back to the first
434 @LI{<blank>}character,
435 the beginning of the insertion,
436 or the beginning of the line or the file.
437 @sp 1
438 For example, the abbreviations:
439 @sp 1
440 @multitable {:abbreviate} {/*#i} {/********************}
441 @item :abbreviate @tab abc @tab ABC
442 @item :abbreviate @tab #i @tab #include
443 @item :abbreviate @tab /*#i @tab /*#include
444 @end multitable
445 will all work, while the abbreviations:
446 @sp 1
447 @multitable {:abbreviate} {/*#i} {/********************}
448 @item :abbreviate @tab a#i @tab A#include
449 @item :abbreviate @tab /* @tab /********************
450 @end multitable
451 will not work, and are not permitted by
452 @CO{nvi}.
453 @sp 1
454 To keep the abbreviation expansion from happening,
455 the character immediately following the
456 @LI{lhs}characters should be quoted with a
457 @LI{<literal-next>}character.
458 @sp 1
459 The replacement
460 @LI{rhs}is itself subject to both further abbreviation expansion and further
461 map expansion.
462 @table @asis
463 @item Line:
464 Unchanged.
465 @item Options:
466 None.
467 @end table
468 @end deftypefn
469 @cindex append
470 @deftypefn Command {[line]} {a[ppend][!]}
472 The input text is appended to the specified line.
473 If line 0 is specified, the text is inserted at the beginning of the file.
474 Set to the last line input.
475 If no lines are input, then set to
476 @LI{line},
477 or to the first line of the file if a
478 @LI{line}of 0 was specified.
479 Following the command name with a
480 @QT{!}
481 character causes the
482 @OP{autoindent}
483 option to be toggled for the duration of the command.
484 @table @asis
485 @item Line:
486 Unchanged.
487 @item Options:
488 Affected by the
489 @OP{autoindent}
491 @OP{number}
492 options.
493 @end table
494 @end deftypefn
495 @cindex args
496 @deftypefn Command {} {ar[gs]}
498 Display the argument list.
499 The current argument is displayed inside of
500 @QT{[}
502 @QT{]}
503 characters.
504 The argument list is the list of operands specified on startup,
505 which can be replaced using the
506 @CO{next}
507 command.
508 @table @asis
509 @item Line:
510 Unchanged.
511 @item Options:
512 None.
513 @end table
514 @end deftypefn
515 @cindex bg
516 @deftypefn Command {} {bg}
518 @CO{Vi}
519 mode only.
520 Background the current screen.
521 The screen is unchanged,
522 but is no longer accessible and disappears from the display.
523 Use the
524 @CO{fg}
525 command to bring the screen back to the display foreground.
526 @table @asis
527 @item Line:
528 Set to the current line when the screen was last edited.
529 @item Options:
530 None.
531 @end table
532 @end deftypefn
533 @cindex change
534 @deftypefn Command {[range]} {c[hange][!]} {[count]}
536 Replace the lines with input text.
537 Following the command name with a
538 @QT{!}
539 character causes the
540 @OP{autoindent}
541 option to be toggled for the duration of the command.
542 @table @asis
543 @item Line:
544 Set to the last line input, or, if no lines were input,
545 set to the line before the target line, or to the first
546 line of the file if there are no lines preceding the target line.
547 @item Options:
548 Affected by the
549 @OP{autoindent}
551 @OP{number}
552 options.
553 @end table
554 @cindex cd
555 @end deftypefn
556 @cindex chdir
557 @deftypefn Command {} {chd[ir][!]} {[directory]}
559 @deftypefnx Command {}  {cd[!]} {[directory]}
560 Change the current working directory.
562 @LI{directory}argument is subjected to
563 @XR{sh,1}
564 word expansions.
565 When invoked with no directory argument and the
566 @LI{HOME}environment variable is set, the directory named by the
567 @LI{HOME}environment variable becomes the new current directory.
568 Otherwise, the new current directory becomes the directory returned
569 by the
570 @XR{getpwent,3}
571 routine.
572 @sp 1
574 @CO{chdir}
575 command will fail if the file has been modified since the last complete
576 write of the file.
577 You can override this check by appending a
578 @QT{!}
579 character to the command.
580 @table @asis
581 @item Line:
582 Unchanged.
583 @item Options:
584 Affected by the
585 @OP{cdpath}
586 option.
587 @end table
588 @cindex copy
589 @end deftypefn
590 @cindex t
591 @deftypefn Command {[range]} {co[py]} {line [flags]}
593 @deftypefnx Command  {[range]} {t} {line [flags]}
594 Copy the specified lines (range) after the destination line.
595 Line 0 may be specified to insert the lines at the beginning of
596 the file.
597 @table @asis
598 @item Line:
599 Unchanged.
600 @item Options:
601 None.
602 @end table
603 @end deftypefn
604 @cindex cscope
605 @deftypefn Command {} {cs[cope]} {command [args]}
607 Execute a
608 @CO{cscope}
609 command.
610 For more information, see the section of the reference manual entitled
611 @QB{Tags, Tag Stacks, and Cscope} .
612 @end deftypefn
613 @cindex delete
614 @deftypefn Command {[range]} {d[elete]} {[buffer] [count] [flags]}
616 Delete the lines from the file.
617 The deleted text is saved in the specified buffer, or, if no buffer
618 is specified, in the unnamed buffer.
619 If the command name is followed by a letter that could be interpreted
620 as either a buffer name or a flag value (because neither a
621 @LI{count}or
622 @LI{flags}values were given),
623 @CO{ex}
624 treats the letter as a
625 @LI{flags}value if the letter immediately follows the command name,
626 without any whitespace separation.
627 If the letter is preceded by whitespace characters,
628 it treats it as a buffer name.
629 @table @asis
630 @item Line:
631 Set to the line following the deleted lines,
632 or to the last line if the deleted lines were at the end.
633 @item Options:
634 None.
635 @end table
636 @end deftypefn
637 @cindex display
638 @deftypefn Command {} {di[splay]} {b[uffers] | c[onnections] | s[creens] | t[ags]}
640 Display buffers,
641 @CO{cscope}
642 connections, screens or tags.
644 @CO{display}
645 command takes one of three additional arguments, which are as follows:
646 @table @asis
647 @item b[uffers]
648 Display all buffers (including named, unnamed, and numeric)
649 that contain text.
650 @item c[onnections]
651 Display the source directories for all attached
652 @CO{cscope}
653 databases.
654 @item s[creens]
655 Display the file names of all background screens.
656 @item t[ags]
657 Display the tags stack.
658 @end table
659 @table @asis
660 @item Line:
661 Unchanged.
662 @item Options:
663 None.
664 @end table
665 @end deftypefn
666 @cindex edit
667 @deftypefn Command {} {e[dit][!]} {[+cmd] [file]}
668 @deftypefnx Command {}  {ex[!]} {[+cmd] [file]}
669 @deftypefnx Command {} {vs[plit][!]} {[+cmd] [file]}
670 Edit a different file.
671 If the current buffer has been modified since the last complete write,
672 the command will fail.
673 You can override this by appending a
674 @QT{!}
675 character to the command name.
676 @sp 1
677 If the
678 @QT{+cmd}
679 option is specified, that
680 @CO{ex}
681 command will be executed in the new file.
683 @CO{ex}
684 command may be used, although the most common use of this feature is
685 to specify a line number or search pattern to set the initial location
686 in the new file.
687 @sp 1
688 Capitalizing the first letter of the command, i.e.,
689 @CO{Edit}
691 @CO{Ex},
692 while in
693 @CO{vi}
694 mode, will edit the file in a new screen.
695 In this case, any modifications to the current file are ignored.
696 @cindex vertical split
697 @cindex splitting, vertically
698 @CO{vsplit} is similar, but the screen will be split vertically
699 to produce the new screen, rather than horizontally.
701 @table @asis
702 @item Line:
703 If you have previously edited the file, the current line will be set
704 to your last position in the file.
705 If that position does not exist, or you have not previously edited the
706 file, the current line will be set to the first line of the file if
707 you are in
708 @CO{vi}
709 mode, and the last line of the file if you are in
710 @CO{ex}.
711 @item Options:
712 None.
713 @end table
714 @end deftypefn
715 @cindex exusage
716 @deftypefn Command {} {exu[sage]} {[command]}
718 Display usage for an
719 @CO{ex}
720 command.
722 @LI{command}is specified, a usage statement for that command is displayed.
723 Otherwise, usage statements for all
724 @CO{ex}
725 commands are displayed.
726 @table @asis
727 @item Line:
728 Unchanged.
729 @item Options:
730 None.
731 @end table
732 @end deftypefn
733 @cindex file
734 @deftypefn Command {} {f[ile]} {[file]}
736 Display and optionally change the file name.
737 If a file name is specified, the current pathname is changed to the
738 specified name.
739 The current pathname, the number of lines, and the current position
740 in the file are displayed.
741 @table @asis
742 @item Line:
743 Unchanged.
744 @item Options:
745 None.
746 @end table
747 @end deftypefn
748 @cindex fg
749 @deftypefn Command {} {fg} {[name]}
751 @CO{Vi}
752 mode only.
753 Foreground the specified screen.
754 If the argument name doesn't exactly match the name of a file displayed
755 by a background screen,
756 it is compared against the last component of each of the file names.
757 If no background screen is specified,
758 the first background screen is foregrounded.
759 @sp 1
760 By default,
761 foregrounding causes the current screen to be swapped with the backgrounded
762 screen.
763 Capitalizing the first letter of the command, i.e.
764 @CO{Fg},
765 will foreground the backgrounded screen in a new screen instead of
766 swapping it with the current screen.
767 @table @asis
768 @item Line:
769 Set to the current line when the screen was last edited.
770 @item Options:
771 None.
772 @end table
773 @end deftypefn
774 @cindex global
775 @deftypefn Command {[range]} {g[lobal]} {/pattern/ [commands]}
777 @cindex v
778 @deftypefnx Command  {[range]} {v} {/pattern/ [commands]}
779 Apply commands to lines matching (or not matching) a pattern.
780 The lines within the given range that match
781 @PQ{g[lobal]},
782 or do not match
783 @PQ{v}
784 the given pattern are selected.
785 Then, the specified
786 @CO{ex}
787 command(s) are executed with the current line
788 @PQ{.}
789 set to each selected line.
790 If no range is specified, the entire file is searched for matching,
791 or not matching, lines.
792 @sp 1
793 Multiple commands can be specified, one per line, by escaping each
794 @LI{<newline>}character with a backslash, or by separating commands with a
795 @QT{|}
796 character.
797 If no commands are specified, the command defaults to the
798 @CO{print}
799 command.
800 @sp 1
801 For the
802 @CO{append},
803 @CO{change}
805 @CO{insert}
806 commands, the input text must be part of the global command line.
807 In this case, the terminating period can be omitted if it ends the commands.
808 @sp 1
810 @CO{visual}
811 command may also be specified as one of the
812 @CO{ex}
813 commands.
814 In this mode, input is taken from the terminal.
815 Entering a
816 @CO{Q}
817 command in
818 @CO{vi}
819 mode causes the next line matching the pattern to be selected and
820 @CO{vi}
821 to be reentered, until the list is exhausted.
822 @sp 1
824 @CO{global},
825 @CO{v}
827 @CO{undo}
828 commands cannot be used as part of these commands.
829 @sp 1
830 The editor options
831 @OP{autoindent},
832 @OP{autoprint}
834 @OP{report}
835 are turned off for the duration of the
836 @CO{global}
838 @CO{v}
839 commands.
840 @table @asis
841 @item Line:
842 The last line modified.
843 @item Options:
844 Affected by the
845 @OP{ignorecase}
847 @OP{magic}
848 options.
849 Turns off the
850 @OP{autoindent},
851 @OP{autoprint}
853 @OP{report}
854 options.
855 @end table
856 @end deftypefn
857 @cindex help
858 @deftypefn Command {} {he[lp]}
860 Display a help message.
861 @table @asis
862 @item Line:
863 Unchanged.
864 @item Options:
865 None.
866 @end table
867 @end deftypefn
868 @cindex insert
869 @deftypefn Command {[line]} {i[nsert][!]}
871 The input text is inserted before the specified line.
872 Following the command name with a
873 @QT{!}
874 character causes the
875 @OP{autoindent}
876 option setting to be toggled for the duration of this command.
877 @table @asis
878 @item Line:
879 Set to the last line input; if no lines were input,
880 set to the line before the target line, or to the first line
881 of the file if there are no lines preceding the target line.
882 Affected by the
883 @OP{autoindent}
885 @OP{number}
886 options.
887 @end table
888 @end deftypefn
889 @cindex join
890 @deftypefn Command {[range]} {j[oin][!]} {[count] [flags]}
892 Join lines of text together.
893 @sp 1
895 @LI{count}specified to the
896 @CO{join}
897 command specifies that the last line of the
898 @LI{range}plus
899 @LI{count}subsequent lines will be joined.
900 (Note, this differs by one from the general rule where only
901 @LI{count}- 1
902 subsequent lines are affected.)
903 @sp 1
904 If the current line ends with a whitespace character, all whitespace
905 is stripped from the next line.
906 Otherwise, if the next line starts with a open parenthesis
907 @PQ{(},
908 do nothing.
909 Otherwise, if the current line ends with a question mark
910 @PQ{?},
911 period
912 @PQ{.}
913 or exclamation point
914 @PQ{!},
915 insert two spaces.
916 Otherwise, insert a single space.
917 @sp 1
918 Appending a
919 @QT{!}
920 character to the command name causes a simpler join with no
921 white-space processing.
922 @table @asis
923 @item Line:
924 Unchanged.
925 @item Options:
926 None.
927 @end table
928 @end deftypefn
929 @cindex list
930 @deftypefn Command {[range]} {l[ist]} {[count] [flags]}
932 Display the lines unambiguously.
933 Tabs are displayed as
934 @QT{^I},
935 and the end of the line is marked with a
936 @QT{$}
937 character.
938 @table @asis
939 @item Line:
940 Set to the last line displayed.
941 @item Options:
942 Affected by the
943 @OP{number}
944 option.
945 @end table
946 @end deftypefn
947 @cindex map
948 @deftypefn Command {} {map[!]} {[lhs rhs]}
950 Define or display maps (for
951 @CO{vi}
952 only).
953 @sp 1
955 @QT{lhs}
957 @QT{rhs}
958 are not specified, the current set of command mode maps are displayed.
959 If a
960 @QT{!}
961 character is appended to to the command,
962 the text input mode maps are displayed.
963 @sp 1
964 Otherwise, when the
965 @QT{lhs}
966 character sequence is entered in
967 @CO{vi},
968 the action is as if the corresponding
969 @QT{rhs}
970 had been entered.
971 If a
972 @QT{!}
973 character is appended to the command name,
974 the mapping is effective during text input mode,
975 otherwise, it is effective during command mode.
976 This allows
977 @QT{lhs}
978 to have two different macro definitions at the same time: one for command
979 mode and one for input mode.
980 @sp 1
981 Whitespace characters require escaping with a
982 @LI{<literal-next>}character to be entered in the
983 @LI{lhs}string in visual mode.
984 @sp 1
985 Normally, keys in the
986 @LI{rhs}string are remapped (see the
987 @OP{remap}
988 option),
989 and it is possible to create infinite loops.
990 However, keys which map to themselves are not further remapped,
991 regardless of the setting of the
992 @OP{remap}
993 option.
994 For example, the command
995 @QT{:map n nz.}
996 maps the
997 @QT{n}
998 key to the
999 @CO{n}
1001 @CO{z}
1002 commands.
1003 @sp 1
1004 To exit an infinitely looping map, use the terminal
1005 @LI{<interrupt>}character.
1006 @table @asis
1007 @item Line:
1008 Unchanged.
1009 @item Options:
1010 Affected by the
1011 @OP{remap}
1012 option.
1013 @end table
1014 @cindex mark
1015 @end deftypefn
1016 @cindex k
1017 @deftypefn Command {[line]} {ma[rk]} {<character>}
1019 @deftypefnx Command  {[line]} {k} {<character>}
1020 Mark the line with the mark
1021 @LI{<character>}.
1022 The expressions
1023 @QT{'<character>}
1025 @QT{`<character>}
1026 can then be used as an address in any command that uses one.
1027 @table @asis
1028 @item Line:
1029 Unchanged.
1030 @item Options:
1031 None.
1032 @end table
1033 @end deftypefn
1034 @cindex move
1035 @deftypefn Command {[range]} {m[ove]} {line}
1037 Move the specified lines after the target line.
1038 A target line of 0 places the lines at the beginning of the file.
1039 @table @asis
1040 @item Line:
1041 Set to the first of the moved lines.
1042 @item Options:
1043 None.
1044 @end table
1045 @end deftypefn
1046 @cindex mkexrc
1047 @deftypefn Command {} {mk[exrc][!]} {file}
1049 Write the abbreviations, editor options and maps to the specified
1050 file.
1051 Information is written in a form which can later be read back in
1052 using the
1053 @CO{ex}
1054 @CO{source}
1055 command.
1057 @LI{file}already exists, the
1058 @CO{mkexrc}
1059 command will fail.
1060 This check can be overridden by appending a
1061 @QT{!}
1062 character to the command.
1063 @table @asis
1064 @item Line:
1065 Unchanged.
1066 @item Options:
1067 None.
1068 @end table
1069 @end deftypefn
1070 @cindex next
1071 @deftypefn Command {} {n[ext][!]} {[file ...]}
1073 Edit the next file from the argument list.
1075 @CO{next}
1076 command will fail if the file has been modified since the last complete
1077 write.
1078 This check can be overridden by appending the
1079 @QT{!}
1080 character to the command name.
1081 The argument list can optionally be replaced by specifying a new one
1082 as arguments to this command.
1083 In this case, editing starts with the first file on the new list.
1084 @sp 1
1085 Capitalizing the first letter of the command, i.e.
1086 @CO{Next},
1087 while in
1088 @CO{vi}
1089 mode, will set the argument list and edit the file in a new screen.
1090 In this case, any modifications to the current file are ignored.
1091 @table @asis
1092 @item Line:
1093 Set as described for the
1094 @CO{edit}
1095 command.
1096 @item Options:
1097 Affected by the options
1098 @OP{autowrite}
1100 @OP{writeany}.
1101 @end table
1102 @end deftypefn
1103 @cindex open
1104 @deftypefn Command {[line]} {o[pen]} {/pattern/ [flags]}
1106 Enter open mode.
1107 Open mode is the same as being in
1108 @CO{vi},
1109 but with a one-line window.
1110 All the standard
1111 @CO{vi}
1112 commands are available.
1113 If a match is found for the optional RE argument,
1114 the cursor is set to the start of the matching pattern.
1115 @sp 1
1116 @emph{This command is not yet implemented.}
1117 @table @asis
1118 @item Line:
1119 Unchanged, unless the optional RE is specified, in which case it is
1120 set to the line where the matching pattern is found.
1121 @item Options:
1122 Affected by the
1123 @OP{open}
1124 option.
1125 @end table
1126 @end deftypefn
1127 @cindex preserve
1128 @deftypefn Command {} {pre[serve]}
1130 Save the file in a form that can later be recovered using the
1131 @CO{ex}
1132 @strong{-r}
1133 option.
1134 When the file is preserved, an email message is sent to the user.
1135 @table @asis
1136 @item Line:
1137 Unchanged.
1138 @item Options:
1139 None.
1140 @end table
1141 @end deftypefn
1142 @cindex previous
1143 @deftypefn Command {} {prev[ious][!]}
1145 Edit the previous file from the argument list.
1147 @CO{previous}
1148 command will fail if the file has been modified since the last complete
1149 write.
1150 This check can be overridden by appending the
1151 @QT{!}
1152 character to the command name.
1153 @sp 1
1154 Capitalizing the first letter of the command, i.e.
1155 @CO{Previous},
1156 while in
1157 @CO{vi}
1158 mode, will edit the file in a new screen.
1159 In this case, any modifications to the current file are ignored.
1160 @table @asis
1161 @item Line:
1162 Set as described for the
1163 @CO{edit}
1164 command.
1165 @item Options:
1166 Affected by the options
1167 @OP{autowrite}
1169 @OP{writeany}.
1170 None.
1171 @end table
1172 @end deftypefn
1173 @cindex print
1174 @deftypefn Command {[range]} {p[rint]} {[count] [flags]}
1176 Display the specified lines.
1177 @table @asis
1178 @item Line:
1179 Set to the last line displayed.
1180 @item Options:
1181 Affected by the
1182 @OP{list}
1184 @OP{number}
1185 option.
1186 @end table
1187 @end deftypefn
1188 @cindex put
1189 @deftypefn Command {[line]} {pu[t]} {[buffer]}
1191 Append buffer contents to the current line.
1192 If a buffer is specified, its contents are appended to the line,
1193 otherwise, the contents of the unnamed buffer are used.
1194 @table @asis
1195 @item Line:
1196 Set to the line after the current line.
1197 @item Options:
1198 None.
1199 @end table
1200 @end deftypefn
1201 @cindex quit
1202 @deftypefn Command {} {q[uit][!]}
1204 End the editing session.
1205 If the file has been modified since the last complete write, the
1206 @CO{quit}
1207 command will fail.
1208 This check may be overridden by appending a
1209 @QT{!}
1210 character to the command.
1211 @sp 1
1212 If there are more files to edit, the
1213 @CO{quit}
1214 command will fail.
1215 Appending a
1216 @QT{!}
1217 character to the command name or entering two
1218 @CO{quit}
1219 commands (i.e.
1220 @CO{wq},
1221 @CO{quit},
1222 @CO{xit}
1224 @CO{ZZ})
1225 in a row) will override this check and the editor will exit.
1226 @table @asis
1227 @item Line:
1228 Unchanged.
1229 @item Options:
1230 None.
1231 @end table
1232 @end deftypefn
1233 @cindex read
1234 @deftypefn Command {[line]} {r[ead][!]} {[file]}
1236 Read a file.
1237 A copy of the specified file is appended to the line.
1239 @LI{line}is 0, the copy is inserted at the beginning of the file.
1240 If no file is specified, the current file is read; if there is no
1241 current file, then
1242 @LI{file}becomes the current file.
1243 If there is no current file and no
1244 @LI{file}is specified, then the
1245 @CO{read}
1246 command will fail.
1247 @sp 1
1249 @LI{file}is preceded by a
1250 @QT{!}
1251 character,
1252 @LI{file}is treated as if it were a shell command, and passed to the program
1253 named by the
1254 @OP{shell}
1255 edit option.
1256 The standard and standard error outputs of that command are read into
1257 the file after the specified line.
1258 The special meaning of the
1259 @QT{!}
1260 character can be overridden by escaping it with a backslash
1261 @PQ{\e}
1262 character.
1263 @table @asis
1264 @item Line:
1265 When executed from
1266 @CO{ex},
1267 the current line is set to the last line read.
1268 When executed from
1269 @CO{vi},
1270 the current line is set to the first line read.
1271 @item Options:
1272 None.
1273 @end table
1274 @end deftypefn
1275 @cindex recover
1276 @deftypefn Command {} {rec[over]} {file}
1278 Recover
1279 @LI{file}if it was previously saved.
1280 If no saved file by that name exists, the
1281 @CO{recover}
1282 command behaves equivalently to the
1283 @CO{edit}
1284 command.
1285 @table @asis
1286 @item Line:
1287 Set as described for the
1288 @CO{edit}
1289 command.
1290 @item Options:
1291 None.
1292 @end table
1293 @end deftypefn
1294 @cindex resize
1295 @deftypefn Command {} {res[ize]} {[+|-]size}
1297 @CO{Vi}
1298 mode only.
1299 Grow or shrink the current screen.
1301 @LI{size}is a positive, signed number, the current screen is grown by that many lines.
1303 @LI{size}is a negative, signed number, the current screen is shrunk by that many lines.
1305 @LI{size}is not signed, the current screen is set to the specified
1306 @LI{size}.
1307 Applicable only to split screens.
1308 @table @asis
1309 @item Line:
1310 Unchanged.
1311 @item Options:
1312 None.
1313 @end table
1314 @end deftypefn
1315 @cindex rewind
1316 @deftypefn Command {} {rew[ind][!]}
1318 Rewind the argument list.
1319 If the current file has been modified since the last complete write,
1321 @CO{rewind}
1322 command will fail.
1323 This check may be overridden by appending the
1324 @QT{!}
1325 character to the command.
1326 @sp 1
1327 Otherwise, the current file is set to the first file in the argument
1328 list.
1329 @table @asis
1330 @item Line:
1331 Set as described for the
1332 @CO{edit}
1333 command.
1334 @item Options:
1335 Affected by the
1336 @OP{autowrite}
1338 @OP{writeany}
1339 options.
1340 @end table
1341 @end deftypefn
1342 @cindex set
1343 @deftypefn Command {} {se[t]} {[option[=[value]] ...] [nooption ...] [option? ...] [all]}
1345 Display or set editor options.
1346 When no arguments are specified, the editor option
1347 @OP{term},
1348 and any editor options whose values have been changed from the
1349 default settings are displayed.
1350 If the argument
1351 @LI{all}is specified, the values of all of editor options are displayed.
1352 @sp 1
1353 Specifying an option name followed by the character
1354 @QT{?}
1355 causes the current value of that option to be displayed.
1357 @QT{?}
1358 can be separated from the option name by whitespace characters.
1360 @QT{?}
1361 is necessary only for Boolean valued options.
1362 Boolean options can be given values by the form
1363 @QT{set option}
1364 to turn them on, or
1365 @QT{set nooption}
1366 to turn them off.
1367 String and numeric options can be assigned by the form
1368 @QT{set option=value}.
1369 Any whitespace characters in strings can be included literally by preceding
1370 each with a backslash.
1371 More than one option can be set or listed by a single set command,
1372 by specifying multiple arguments, each separated from the next by
1373 whitespace characters.
1374 @table @asis
1375 @item Line:
1376 Unchanged.
1377 @item Options:
1378 None.
1379 @end table
1380 @end deftypefn
1381 @cindex shell
1382 @deftypefn Command {} {sh[ell]}
1384 Run the shell program.
1385 The program named by the
1386 @OP{shell}
1387 option is run with a
1388 @strong{-i}
1389 (for interactive) flag.
1390 Editing is resumed when that program exits.
1391 @table @asis
1392 @item Line:
1393 Unchanged.
1394 @item Options:
1395 Affected by the
1396 @OP{shell}
1397 option.
1398 @end table
1399 @end deftypefn
1400 @cindex source
1401 @deftypefn Command {} {so[urce]} {file}
1403 Read and execute
1404 @CO{ex}
1405 commands from a file.
1406 @CO{Source}
1407 commands may be nested.
1408 @table @asis
1409 @item Line:
1410 Unchanged.
1411 @item Options:
1412 None.
1413 @end table
1414 @end deftypefn
1415 @cindex substitute
1416 @deftypefn Command {[range]} {s[ubstitute]} {[/pattern/replace/] [options] [count] [flags]}
1418 @cindex &
1419 @deftypefnx Command  {[range]} {&} {[options] [count] [flags]}
1420 @cindex ~
1421 @deftypefnx Command  {[range]} {~} {[options] [count] [flags]}
1422 Make substitutions.
1423 Replace the first instance of
1424 @LI{pattern}with the string
1425 @LI{replace}on the specified line(s).
1426 If the
1427 @QT{/pattern/repl/}
1428 argument is not specified, the
1429 @QT{/pattern/repl/}
1430 from the previous
1431 @CO{substitute}
1432 command is used.
1433 Any character other than an alphabetic, numeric, <blank> or backslash
1434 character may be used as the delimiter.
1435 @sp 1
1437 @LI{options}includes the letter
1438 @QT{c}
1439 (confirm), you will be prompted for confirmation before each replacement
1440 is done.
1441 An affirmative response (in English, a
1442 @QT{y}
1443 character) causes the replacement to be made.
1444 A quit response (in English, a
1445 @QT{q}
1446 character) causes the
1447 @CO{substitute}
1448 command to be terminated.
1449 Any other response causes the replacement not to be made, and the
1450 @CO{substitute}
1451 command continues.
1453 @LI{options}includes the letter
1454 @QT{g}
1455 (global), all nonoverlapping instances of
1456 @LI{pattern}in the line are replaced.
1457 @sp 1
1459 @CO{&}
1460 version of the command is the same as not specifying a pattern
1461 or replacement string to the
1462 @CO{substitute}
1463 command, and the
1464 @QT{&}
1465 is replaced by the pattern and replacement information from the
1466 previous substitute command.
1467 @sp 1
1469 @CO{~}
1470 version of the command is the same as
1471 @CO{&}
1473 @CO{s},
1474 except that the search pattern used is the last RE used in
1475 @emph{any}
1476 command, not necessarily the one used in the last
1477 @CO{substitute}
1478 command.
1479 @sp 1
1480 For example, in the sequence
1481 @example
1482 s/red/blue/
1483 /green
1485 @end example
1487 @QT{~}
1488 is equivalent to
1489 @QT{s/green/blue/}.
1490 @sp 1
1492 @CO{substitute}
1493 command may be interrupted, using the terminal interrupt character.
1494 All substitutions completed before the interrupt are retained.
1495 @table @asis
1496 @item Line:
1497 Set to the last line upon which a substitution was made.
1498 @item Options:
1499 Affected by the
1500 @OP{ignorecase}
1502 @OP{magic}
1503 option.
1504 @end table
1505 @end deftypefn
1506 @cindex suspend
1507 @deftypefn Command {} {su[spend][!]}
1509 @cindex stop
1510 @deftypefnx Command {}  {st[op][!]}
1511 @deftypefnx Comamnd {}  <control-Z>
1512 Suspend the edit session.
1513 Appending a
1514 @QT{!}
1515 character to these commands turns off the
1516 @OP{autowrite}
1517 option for the command.
1518 @table @asis
1519 @item Line:
1520 Unchanged.
1521 @item Options:
1522 Affected by the
1523 @OP{autowrite}
1525 @OP{writeany}
1526 options.
1527 @end table
1528 @end deftypefn
1529 @cindex tag
1530 @deftypefn Command {} {ta[g][!]} {tagstring}
1532 Edit the file containing the specified tag.
1533 If the tag is in a different file, then the new file is edited.
1534 If the current file has been modified since the last complete write,
1536 @CO{tag}
1537 command will fail.
1538 This check can be overridden by appending the
1539 @QT{!}
1540 character to the command name.
1541 @sp 1
1543 @CO{tag}
1544 command searches for
1545 @LI{tagstring}in the tags file(s) specified by the
1546 @OP{tags}
1547 option.
1548 (See
1549 @XR{ctags,1}
1550 for more information on tags files.)
1551 @sp 1
1552 Capitalizing the first letter of the command, i.e.
1553 @CO{Tag},
1554 while in
1555 @CO{vi}
1556 mode, will edit the file in a new screen.
1557 In this case, any modifications to the current file are ignored.
1558 @table @asis
1559 @item Line:
1560 Set to the line indicated by the tag.
1561 @item Options:
1562 Affected by the
1563 @OP{autowrite},
1564 @OP{taglength},
1565 @OP{tags}
1567 @OP{writeany}
1568 options.
1569 @end table
1570 @end deftypefn
1571 @cindex tagnext
1572 @deftypefn Command {} {tagn[ext][!]}
1574 Edit the file containing the next context for the current tag.
1575 If the context is in a different file, then the new file is edited.
1576 If the current file has been modified since the last complete write,
1578 @CO{tagnext}
1579 command will fail.
1580 This check can be overridden by appending the
1581 @QT{!}
1582 character to the command name.
1583 @sp 1
1584 Capitalizing the first letter of the command, i.e.
1585 @CO{Tagnext},
1586 while in 
1587 @CO{vi}
1588 mode, will edit the file in a new screen.
1589 In this case, any modifications to the current file are ignored.
1590 @table @asis 
1591 @item Line:
1592 Set to the line indicated by the tag.
1593 @item Options:
1594 Affected by the 
1595 @OP{autowrite}
1597 @OP{writeany}
1598 options.
1599 @end table
1600 @end deftypefn
1601 @cindex tagpop
1602 @deftypefn Command {} {tagp[op][!]} {[file | number]}
1604 Pop to the specified tag in the tags stack.
1605 If neither
1606 @LI{file}or
1607 @LI{number}is specified, the
1608 @CO{tagpop}
1609 command pops to the most recent entry on the tags stack.
1611 @LI{file}or
1612 @LI{number}is specified, the
1613 @CO{tagpop}
1614 command pops to the most recent entry in the tags stack for that file,
1615 or numbered entry in the tags stack, respectively.
1616 (See the
1617 @CO{display}
1618 command for information on displaying the tags stack.)
1619 @sp 1
1620 If the file has been modified since the last complete write, the
1621 @CO{tagpop}
1622 command will fail.
1623 This check may be overridden by appending a
1624 @QT{!}
1625 character to the command name.
1626 @table @asis
1627 @item Line:
1628 Set to the line indicated by the tag.
1629 @item Options:
1630 Affected by the
1631 @OP{autowrite}
1633 @OP{writeany}
1634 options.
1635 @end table
1636 @end deftypefn
1637 @cindex tagprev
1638 @deftypefn Command {} {tagp[rev][!]}
1640 Edit the file containing the previous context for the current tag.
1641 If the context is in a different file, then the new file is edited.
1642 If the current file has been modified since the last complete write,
1644 @CO{tagprev}
1645 command will fail.
1646 This check can be overridden by appending the
1647 @QT{!}
1648 character to the command name.
1649 @sp 1
1650 Capitalizing the first letter of the command, i.e.
1651 @CO{Tagprev},
1652 while in 
1653 @CO{vi}
1654 mode, will edit the file in a new screen.
1655 In this case, any modifications to the current file are ignored.
1656 @table @asis 
1657 @item Line:
1658 Set to the line indicated by the tag.
1659 @item Options:
1660 Affected by the 
1661 @OP{autowrite}
1663 @OP{writeany}
1664 options.
1665 @end table
1666 @end deftypefn
1667 @cindex tagtop
1668 @deftypefn Command {} {tagt[op][!]}
1670 Pop to the least recent tag on the tags stack, clearing the tags stack.
1671 @sp 1
1672 If the file has been modified since the last complete write, the
1673 @CO{tagtop}
1674 command will fail.
1675 This check may be overridden by appending a
1676 @QT{!}
1677 character to the command name.
1678 @table @asis
1679 @item Line:
1680 Set to the line indicated by the tag.
1681 @item Options:
1682 Affected by the
1683 @OP{autowrite}
1685 @OP{writeany}
1686 options.
1687 @end table
1688 @end deftypefn
1689 @cindex unabbrev
1690 @deftypefn Command {} {una[bbrev]} {lhs}
1692 Delete an abbreviation.
1693 Delete
1694 @LI{lhs}from the current list of abbreviations.
1695 @table @asis
1696 @item Line:
1697 Unchanged.
1698 @item Options:
1699 None.
1700 @end table
1701 @end deftypefn
1702 @cindex undo
1703 @deftypefn Command {} {u[ndo]}
1705 Undo the last change made to the file.
1706 Changes made by
1707 @CO{global},
1708 @CO{v},
1709 @CO{visual}
1710 and map sequences are considered a single command.
1711 If repeated, the
1712 @CO{u}
1713 command alternates between these two states, and is its own inverse.
1714 @table @asis
1715 @item Line:
1716 Set to the last line modified by the command.
1717 @item Options:
1718 None.
1719 @end table
1720 @end deftypefn
1721 @cindex unmap
1722 @deftypefn Command {} {unm[ap][!]} {lhs}
1724 Unmap a mapped string.
1725 Delete the command mode map definition for
1726 @LI{lhs}.
1727 If a
1728 @QT{!}
1729 character is appended to the command name, delete the text input mode
1730 map definition instead.
1731 @table @asis
1732 @item Line:
1733 Unchanged.
1734 @item Options:
1735 None.
1736 @end table
1737 @end deftypefn
1738 @cindex version
1739 @deftypefn Command {} {ve[rsion]}
1741 Display the version of the
1742 @CO{ex/vi}
1743 editor.
1744 @end deftypefn
1745 @cindex visual
1746 @deftypefn Command {[line]} {vi[sual]} {[type] [count] [flags]}
1748 @CO{Ex}
1749 mode only.
1750 Enter
1751 @CO{vi}.
1753 @LI{type}is optional, and can be
1754 @QT{-},
1755 @QT{+}
1757 @QT{^},
1758 as in the
1759 @CO{ex}
1760 @CO{z}
1761 command, to specify the position of the specified line in the screen
1762 window.
1763 (The default is to place the line at the top of the screen window.)
1765 @LI{count}specifies the number of lines that will initially be displayed.
1766 (The default is the value of the
1767 @OP{window}
1768 editor option.)
1769 @table @asis
1770 @item Line:
1771 Unchanged unless
1772 @LI{line}is specified, in which case it is set to that line.
1773 @item Options:
1774 None.
1775 @end table
1776 @end deftypefn
1777 @cindex visual
1778 @deftypefn Command {} {vi[sual][!]} {[+cmd] [file]}
1780 @CO{Vi}
1781 mode only.
1782 Edit a new file.
1783 Identical to the
1784 @QT{edit[!] [+cmd] [file]}
1785 command.
1786 @sp 1
1787 Capitalizing the first letter of the command, i.e.
1788 @CO{Visual},
1789 will edit the file in a new screen.
1790 In this case, any modifications to the current file are ignored.
1791 @end deftypefn
1792 @cindex viusage
1793 @deftypefn Command {} {viu[sage]} {[command]}
1795 Display usage for a
1796 @CO{vi}
1797 command.
1799 @LI{command}is specified, a usage statement for that command is displayed.
1800 Otherwise, usage statements for all
1801 @CO{vi}
1802 commands are displayed.
1803 @table @asis
1804 @item Line:
1805 Unchanged.
1806 @item Options:
1807 None.
1808 @end table
1809 @end deftypefn
1810 @cindex write
1811 @deftypefn Command {[range]} {w[rite][!]} {[>>] [file]}
1813 @deftypefnx Command  {[range]} {w[rite]} {[!] [file]}
1814 @cindex wn
1815 @deftypefnx Command  {[range]} {wn[!]} {[>>] [file]}
1816 @cindex wq
1817 @deftypefnx Command  {[range]} {wq[!]} {[>>] [file]}
1818 Write the file.
1819 The specified lines (the entire file, if no range is given) is written
1821 @LI{file}.
1823 @LI{file}is not specified, the current pathname is used.
1825 @LI{file}is specified, and it exists, or if the current pathname was set using the
1826 @CO{file}
1827 command, and the file already exists, these commands will fail.
1828 Appending a
1829 @QT{!}
1830 character to the command name will override this check and the write
1831 will be attempted, regardless.
1832 @sp 1
1833 Specifying the optional
1834 @QT{>>}
1835 string will cause the write to be appended to the file, in which case
1836 no tests are made for the file already existing.
1837 @sp 1
1838 If the file is preceded by a
1839 @QT{!}
1840 character, the program named by the shell edit option is
1841 invoked with file as its second argument, and the specified
1842 lines are passed as standard input to that command.
1844 @QT{!}
1845 in this usage must be separated from command name by at least one
1846 whitespace character.
1847 The special meaning of the
1848 @QT{!}
1849 may be overridden by escaping it with a backslash
1850 @PQ{\e}
1851 character.
1852 @sp 1
1854 @CO{wq}
1855 version of the write command will exit the editor after writing the file,
1856 if there are no further files to edit.
1857 Appending a
1858 @QT{!}
1859 character to the command name or entering two
1860 @QQ{quit}
1861 commands (i.e.
1862 @CO{wq},
1863 @CO{quit},
1864 @CO{xit}
1866 @CO{ZZ})
1867 in a row) will override this check and the editor will exit,
1868 ignoring any files that have not yet been edited.
1869 @sp 1
1871 @CO{wn}
1872 version of the write command will move to the next file after writing
1873 the file, unless the write fails.
1874 @table @asis
1875 @item Line:
1876 Unchanged.
1877 @item Options:
1878 Affected by the
1879 @OP{readonly}
1881 @OP{writeany}
1882 options.
1883 @end table
1884 @end deftypefn
1885 @cindex xit
1886 @deftypefn Command {[range]} {x[it][!]} {[file]}
1888 Write the file if it has been modified.
1889 The specified lines are written to
1890 @LI{file},
1891 if the file has been modified since the last complete write to any
1892 file.
1893 If no
1894 @LI{range}is specified, the entire file is written.
1895 @sp 1
1897 @CO{xit}
1898 command will exit the editor after writing the file,
1899 if there are no further files to edit.
1900 Appending a
1901 @QT{!}
1902 character to the command name or entering two
1903 @QQ{quit}
1904 commands (i.e.
1905 @CO{wq},
1906 @CO{quit},
1907 @CO{xit}
1909 @CO{ZZ})
1910 in a row) will override this check and the editor will exit,
1911 ignoring any files that have not yet been edited.
1912 @table @asis
1913 @item Line:
1914 Unchanged.
1915 @item Options:
1916 Affected by the
1917 @OP{readonly}
1919 @OP{writeany}
1920 options.
1921 @end table
1922 @end deftypefn
1923 @cindex yank
1924 @deftypefn Command {[range]} {ya[nk]} {[buffer] [count]}
1926 Copy the specified lines to a buffer.
1927 If no buffer is specified, the unnamed buffer is used.
1928 @table @asis
1929 @item Line:
1930 Unchanged.
1931 @item Options:
1932 None.
1933 @end table
1934 @end deftypefn
1935 @cindex z
1936 @deftypefn Command {[line]} {z} {[type] [count] [flags]}
1938 Adjust the window.
1939 If no
1940 @LI{type}is specified, then
1941 @LI{count}lines following the specified line are displayed.
1942 The default
1943 @LI{count}is the value of the
1944 @OP{window}
1945 option.
1947 @LI{type}argument changes the position at which
1948 @LI{line}is displayed on the screen by changing the number of lines
1949 displayed before and after
1950 @LI{line}.
1951 The following
1952 @LI{type}characters may be used:
1953 @table @asis
1954 @item -
1955 Place the line at the bottom of the screen.
1956 @item +
1957 Place the line at the top of the screen.
1958 @item .
1959 Place the line in the middle of the screen.
1960 @item ^
1961 Write out count lines starting
1962 @LI{count * 2}lines before
1963 @LI{line};
1964 the net effect of this is that a
1965 @QT{z^}
1966 command following a
1967 @CO{z}
1968 command writes the previous page.
1969 @item =
1970 Center
1971 @LI{line}on the screen with a line of hyphens displayed immediately before and
1972 after it.
1973 The number of preceding and following lines of text displayed are
1974 reduced to account for those lines.
1975 @end table
1976 @table @asis
1977 @item Line:
1978 Set to the last line displayed, with the exception of the
1979 @QT{=}
1980 @LI{type},
1981 where the current line is set to the line specified by the command.
1982 @item Options:
1983 Affected by the
1984 @OP{scroll}
1985 option.
1986 @end table
1987 @end deftypefn