1 @comment Copyright (c) 1994
2 @comment The Regents of the University of California. All rights reserved.
3 @comment Copyright (c) 1994, 1995, 1996
4 @comment Keith Bostic. All rights reserved.
6 @comment See the LICENSE file for redistribution information.
8 @comment $Id: vi.cmd.texi,v 8.1 2001/08/18 20:43:49 skimo Exp $ (Berkeley) $Date: 2001/08/18 20:43:49 $
10 @chapter Vi Description
12 @CO{Vi} takes up the entire screen to display the edited file,
13 except for the bottom line of the screen.
14 The bottom line of the screen is used to enter
18 error and informational messages.
19 If no other information is being displayed,
20 the default display can show the current cursor row and cursor column,
21 an indication of whether the file has been modified,
22 and the current mode of the editor.
27 options for more information.
29 Empty lines do not have any special representation on the screen,
30 but lines on the screen that would logically come after the end of
31 the file are displayed as a single tilde
34 To differentiate between empty lines and lines consisting of only
35 whitespace characters, use the
38 Historically, implementations of
40 have also displayed some lines as single asterisk
43 These were lines that were not correctly displayed, i.e. lines on the
44 screen that did not correspond to lines in the file, or lines that did
45 not fit on the current screen.
47 never displays lines in this fashion.
50 is a modeful editor, i.e. it has two modes,
57 first starts, it is in command mode.
58 There are several commands that change
62 @LI{<escape>}character is used to resolve the text input into the file,
63 and exit back into command mode.
66 command mode, the cursor is always positioned on the last column of
67 characters which take up more than one column on the screen.
70 text insert mode, the cursor is positioned on the first column of
71 characters which take up more than one column on the screen.
73 When positioning the cursor to a new line and column,
74 the type of movement is defined by the distance to the new cursor position.
75 If the new position is close,
76 the screen is scrolled to the new location.
77 If the new position is far away,
78 the screen is repainted so that the new position is on the screen.
79 If the screen is scrolled,
80 it is moved a minimal amount,
81 and the cursor line will usually appear at the top or bottom of the screen.
82 If the screen is repainted,
83 the cursor line will appear in the center of the screen,
84 unless the cursor is sufficiently close to the beginning or end of the file
85 that this isn't possible.
88 option is set, the screen may be scrolled or repainted in a horizontal
89 direction as well as in a vertical one.
91 A major difference between the historical
95 is in the scrolling and screen oriented position commands,
106 In historical implementations of
108 these commands acted on physical (as opposed to logical, or screen)
110 For lines that were sufficiently long in relation to the size of the
111 screen, this meant that single line scroll commands might repaint the
112 entire screen, scrolling or screen positioning commands might not change
113 the screen or move the cursor at all, and some lines simply could not
114 be displayed, even though
116 would edit the file that contained them.
119 these commands act on logical, i.e. screen lines.
120 You are unlikely to notice any difference unless you are editing files
121 with lines significantly longer than a screen width.
124 keeps track of the currently
127 Each command description (for commands that alter the current cursor
129 specifies if the cursor is set to a specific location in the line,
130 or if it is moved to the
131 @QQ{most attractive cursor position}.
132 The latter means that the cursor is moved to the cursor position that
133 is horizontally as close as possible to the current cursor position.
134 If the current line is shorter than the cursor position
136 would select, the cursor is positioned on the last character in the line.
137 (If the line is empty, the cursor is positioned on the first column
139 If a command moves the cursor to the most attractive position,
140 it does not alter the current cursor position, and a subsequent
141 movement will again attempt to move the cursor to that position.
142 Therefore, although a movement to a line shorter than the currently
143 most attractive position will cause the cursor to move to the end of
144 that line, a subsequent movement to a longer line will cause the
145 cursor to move back to the most attractive position.
149 command makes the end of each line the most attractive cursor position
150 rather than a specific column.
154 command described below notes where the cursor ends up after it is
156 This position is described in terms of characters on the line, i.e.
157 @QQ{the previous character},
159 @QQ{the last character in the line}.
160 This is to avoid needing to continually refer to on what part of the
161 character the cursor rests.
163 The following words have special meaning for
167 @cindex "previous context"
168 @IP{previous context}
170 The position of the cursor before the command which caused the
171 last absolute movement was executed.
174 command described in the next section that is considered an
175 absolute movement is so noted.
176 In addition, specifying
180 command is considered an absolute movement.
186 command can be used as an optional trailing argument to the
194 and (depending on the
199 This command indicates the end of the region of text that's affected by
201 The motion command may be either the command character repeated (in
202 which case it means the current line) or a cursor movement command.
203 In the latter case, the region affected by the command is from the
204 starting or stopping cursor position which comes first in the file,
205 to immediately before the starting or stopping cursor position which
206 comes later in the file.
207 Commands that operate on lines instead of using beginning and ending
208 cursor positions operate on all of the lines that are wholly or
209 partially in the region.
210 In addition, some other commands become line oriented depending on
211 where in the text they are used.
212 The command descriptions below note these special cases.
214 The following commands may all be used as motion components for
218 @multitable {@CO{<control-N>}} {@CO{'<character>}} {@CO{<control-J>}} {@CO{<control-M>}}
219 @item @CO{<control-A>} @tab @CO{<control-H>} @tab @CO{<control-J>} @tab @CO{<control-M>}
220 @item @CO{<control-N>} @tab @CO{<control-P>} @tab @CO{<space>} @tab @CO{$}
221 @item @CO{%} @tab @CO{'<character>} @tab @CO{(} @tab @CO{)}
222 @item @CO{+} @tab @CO{,} @tab @CO{-} @tab @CO{/}
223 @item @CO{0} @tab @CO{;} @tab @CO{?} @tab @CO{B}
224 @item @CO{E} @tab @CO{F} @tab @CO{G} @tab @CO{H}
225 @item @CO{L} @tab @CO{M} @tab @CO{N} @tab @CO{T}
226 @item @CO{W} @tab @CO{[[} @tab @CO{]]} @tab @CO{^}
227 @item @CO{_} @tab @CO{`<character>} @tab @CO{b} @tab @CO{e}
228 @item @CO{f} @tab @CO{h} @tab @CO{j} @tab @CO{k}
229 @item @CO{l} @tab @CO{n} @tab @CO{t} @tab @CO{w}
230 @item @strong{@{} @tab @CO{|} @tab @strong{@}}
233 The optional count prefix available for some of the
235 commands that take motion commands,
236 or the count prefix available for the
238 commands that are used as motion components,
239 may be included and is
241 considered part of the motion argument.
242 For example, the commands
246 are equivalent, and the region affected by the
248 command is two words of text.
250 if the optional count prefix is specified for both the
252 command and its motion component,
253 the effect is multiplicative and is considered part of the motion argument.
254 For example, the commands
258 are equivalent, and the region affected by the
260 command is four words of text.
264 A positive number used as an optional argument to most commands,
265 either to give a size or a position (for display or movement commands),
266 or as a repeat count (for commands that modify text).
267 The count argument is always optional and defaults to 1 unless otherwise
268 noted in the command description.
272 command synopsis shows both a
275 they may be presented in any order.
279 Generally, in languages where it is applicable,
281 recognizes two kinds of words.
282 First, a sequence of letters, digits and underscores,
283 delimited at both ends by:
284 characters other than letters, digits, or underscores,
285 the beginning or end of a line, and the beginning or end of the file.
286 Second, a sequence of characters other than letters, digits, underscores,
287 or whitespace characters, delimited at both ends by: a letter, digit,
288 underscore, or whitespace character,
289 the beginning or end of a line, and the beginning or end of the file.
290 For example, the characters
298 Groups of empty lines (or lines containing only whitespace characters)
299 are treated as a single word.
303 A set of non-whitespace characters preceded and followed by whitespace
304 characters or the beginning or end of the file or line.
305 For example, the characters
310 Groups of empty lines (or lines containing only whitespace characters)
311 are treated as a single bigword.
315 An area of text that begins with either the beginning of a file,
316 an empty line, or a section boundary, and continues until either
317 an empty line, section boundary, or the end of the file.
319 Groups of empty lines (or lines containing only whitespace characters)
320 are treated as a single paragraph.
322 Additional paragraph boundaries can be defined using the
328 An area of text that starts with the beginning of the file or a line
329 whose first character is an open brace
332 and continues until the next section or the end of the file.
334 Additional section boundaries can be defined using the
340 An area of text that begins with either the beginning of the file or the
341 first nonblank character following the previous sentence, paragraph, or
342 section boundary and continues until the end of the file or a period
349 followed by either an end-of-line or two whitespace characters.
350 Any number of closing parentheses
358 characters can appear between the period, exclamation point,
359 or question mark and the whitespace characters or end-of-line.
361 Groups of empty lines (or lines containing only whitespace characters)
362 are treated as a single sentence.
366 The following section describes the commands available in the command
370 In each entry below, the tag line is a usage synopsis for the command
372 In addition, the final line and column the cursor rests upon,
373 and any options which affect the command are noted.
376 @deftypefn Command {[count]} {<control-A>}
379 @LI{count}times for the current word.
380 The current word begins at the first non-whitespace character on or
381 after the current cursor position,
382 and extends up to the next non-word character or the end of the line.
383 The search is literal, i.e. no characters in the word have any special
384 meaning in terms of Regular Expressions.
385 It is an error if no matching pattern is found between the starting position
386 and the end of the file.
390 command is an absolute movement.
393 command may be used as the motion component of other
395 commands, in which case any text copied into a buffer is
399 Set to the line where the word is found.
401 Set to the first character of the word.
411 @deftypefn Command {[count]} {<control-B>}
415 Two lines of overlap are maintained, if possible,
416 by displaying the window starting at line
417 @LI{(top_line - count * window_size) + 2},
419 @LI{window_size}is the value of the
422 (In the case of split screens, this size is corrected to the
423 current screen size.)
424 It is an error if the movement is past the beginning of the file.
427 Set to the last line of text displayed on the screen.
429 Set to the first nonblank character of the line.
437 @deftypefn Command {[count]} {<control-D>}
442 @LI{count}is not specified, scroll forward the number of lines specified by the last
452 scroll forward half the number of lines in the screen.
453 (In the case of split screens, the default scrolling distance is
454 corrected to half the current screen size.)
455 It is an error if the movement is past the end of the file.
458 Set to the current line plus the number of lines scrolled.
460 Set to the first nonblank character of the line.
466 @deftypefn Command {[count]} {<control-E>}
469 @LI{count}lines, leaving the cursor on the current line and column, if possible.
470 It is an error if the movement is past the end of the file.
473 Unchanged unless the current line scrolls off the screen,
474 in which case it is set to the first line on the screen.
476 Unchanged unless the current line scrolls off the screen,
477 in which case it is set to the most attractive cursor position.
483 @deftypefn Command {[count]} {<control-F>}
487 Two lines of overlap are maintained, if possible,
488 by displaying the window starting at line
489 @LI{top_line + count * window_size - 2},
491 @LI{window_size}is the value of the
494 (In the case of split screens, this size is corrected to the
495 current screen size.)
496 It is an error if the movement is past the end of the file.
499 Set to the first line on the screen.
501 Set to the first nonblank character of the current line.
509 @deftypefn Command {} {<control-G>}
511 Display the file information.
512 The information includes the current pathname, the current line,
513 the number of total lines in the file, the current line as a percentage
514 of the total lines in the file, if the file has been modified,
515 was able to be locked, if the file's name has been changed,
516 and if the edit session is read-only.
528 @deftypefn Command {[count]} {<control-H>}
529 @deftypefnx Command {[count]} {h}
531 @LI{count}characters in the current line.
532 It is an error if the cursor is on the first character in the line.
538 commands may be used as the motion component of other
541 in which case any text copied into a buffer is character oriented.
547 @LI{current - count}character, or, the first character in the line if
548 @LI{count}is greater than or equal to the number of characters in the line
556 @deftypefn Command {[count]} {<control-J>}
559 @deftypefnx Command {[count]} {<control-N>}
561 @deftypefnx Command {[count]} {j}
563 @LI{count}lines without changing the current column.
564 It is an error if the movement is past the end of the file.
571 commands may be used as the motion component of other
573 commands, in which case any text copied into a buffer is
577 Set to the current line plus
580 The most attractive cursor position.
586 @deftypefn Command {} {<control-L>}
589 @deftypefnx Command {} {<control-R>}
601 @deftypefn Command {[count]} {<control-M>}
604 @deftypefnx Command {[count]} {+}
606 @LI{count}lines to the first nonblank character of that line.
607 It is an error if the movement is past the end of the file.
613 commands may be used as the motion component of other
615 commands, in which case any text copied into a buffer is
619 Set to the current line plus
622 Set to the first nonblank character in the line.
628 @deftypefn Command {[count]} {<control-P>}
631 @deftypefnx Command {[count]} {k}
633 @LI{count}lines, without changing the current column.
634 It is an error if the movement is past the beginning of the file.
640 commands may be used as the motion component of other
642 commands, in which case any text copied into a buffer is
646 Set to the current line minus
649 The most attractive cursor position.
655 @deftypefn Command {} {<control-T>}
657 Return to the most recent tag context.
660 command is an absolute movement.
663 Set to the context of the previous tag command.
665 Set to the context of the previous tag command.
671 @deftypefn Command {[count]} {<control-U>}
676 @LI{count}is not specified, scroll backward the number of lines specified by the
687 scroll backward half the number of lines in the screen.
688 (In the case of split screens, the default scrolling distance is
689 corrected to half the current screen size.)
690 It is an error if the movement is past the beginning of the file.
693 Set to the current line minus the amount scrolled.
695 Set to the first nonblank character in the line.
701 @deftypefn Command {} {<control-W>}
703 Switch to the next lower screen in the window, or, to the first
704 screen if there are no lower screens in the window.
707 Set to the previous cursor position in the window.
709 Set to the previous cursor position in the window.
715 @deftypefn Command {[count]} {<control-Y>}
718 @LI{count}lines, leaving the current line and column as is, if possible.
719 It is an error if the movement is past the beginning of the file.
722 Unchanged unless the current line scrolls off the screen,
723 in which case it is set to the last line of text displayed
726 Unchanged unless the current line scrolls off the screen,
727 in which case it is the most attractive cursor position.
733 @deftypefn Command {} {<control-Z>}
735 Suspend the current editor session.
736 If the file has been modified since it was last completely written,
739 option is set, the file is written before the editor session is
741 If this write fails, the editor session is not suspended.
754 @deftypefn Command {} {<escape>}
758 commands or cancel partial commands.
761 command is being entered (e.g.
767 the command is executed.
768 If a partial command has been entered, e.g.
772 the command is cancelled.
773 Otherwise, it is an error.
778 command is being executed, the current line is set as described for
780 Otherwise, unchanged.
784 command is being executed, the current column is set as described for
786 Otherwise, unchanged.
792 @deftypefn Command {} {<control-]>}
794 Push a tag reference onto the tag stack.
795 The tags files (see the
797 option for more information) are searched for a tag matching the
799 The current word begins at the first non-whitespace character on or
800 after the current cursor position,
801 and extends up to the next non-word character or the end of the line.
802 If a matching tag is found, the current file is discarded and the
803 file containing the tag reference is edited.
805 If the current file has been modified since it was last completely
806 written, the command will fail.
809 command is an absolute movement.
812 Set to the line containing the matching tag string.
814 Set to the start of the matching tag string.
824 @deftypefn Command {} {<control-^>}
826 Switch to the most recently edited file.
828 If the file has been modified since it was last completely written,
831 option is set, the file is written out.
832 If this write fails, the command will fail.
833 Otherwise, if the current file has been modified since it was last
834 completely written, the command will fail.
837 Set to the line the cursor was on when the file was last edited.
839 Set to the column the cursor was on when the file was last edited.
847 @deftypefn Command {[count]} {<space>}
850 @deftypefnx Command {[count]} {l}
851 Move the cursor forward
852 @LI{count}characters without changing the current line.
853 It is an error if the cursor is on the last character in the line.
859 commands may be used as the motion component of other
861 commands, in which case any text copied into a buffer is
863 In addition, these commands may be used as the motion components
864 of other commands when the cursor is on the last character in the
870 Set to the current character plus the next
871 @LI{count}characters, or to the last character on the line if
872 @LI{count}is greater than the number of characters in the line after the
879 @deftypefn Command {[count]} {!} {motion shell-argument(s)<carriage-return>}
881 Replace text with results from a shell command.
882 Pass the lines specified by the
884 @LI{motion}arguments as standard input to the program named by the
886 option, and replace those lines with the output (both
887 standard error and standard output) of that command.
889 After the motion is entered,
891 prompts for arguments to the shell command.
893 Within those arguments,
897 characters are expanded to the current and alternate pathnames,
901 character is expanded with the command text of the previous
906 (Therefore, the command
911 The special meanings of
916 can be overridden by escaping them with a backslash.
921 command has yet been executed,
922 it is an error to use an unescaped
924 character as a shell argument.
929 do shell expansion on the strings provided as arguments.
930 If any of the above expansions change the arguments the user entered,
931 the command is redisplayed at the bottom of the screen.
934 then executes the program named by the
938 flag followed by the arguments (which are bundled into a single argument).
942 command is permitted in an empty file.
944 If the file has been modified since it was last completely written,
947 command will warn you.
950 The first line of the replaced text.
952 The first column of the replaced text.
960 @deftypefn Command {[count]} {#} {#|+|-}
962 Increment or decrement the number referenced by the cursor.
963 If the trailing character is a
966 the number is incremented by
968 If the trailing character is a
970 the number is decremented by
977 causes the number to be interpreted as a hexadecimal number.
980 causes the number to be interpreted as an octal number, unless a non-octal
981 digit is found as part of the number.
982 Otherwise, the number is interpreted as a decimal number, and may
986 The current number begins at the first non-blank character at or after
987 the current cursor position, and extends up to the end of the line or
988 the first character that isn't a possible character for the numeric type.
989 The format of the number (e.g. leading 0's, signs) is retained unless
990 the new value cannot be represented in the previous format.
992 Octal and hexadecimal numbers, and the result of the operation, must fit
995 Similarly, decimal numbers and their result must fit into a
997 It is an error to use this command when the cursor is not positioned at
1004 Set to the first character in the cursor number.
1010 @deftypefn Command {[count]} {$}
1012 Move the cursor to the end of a line.
1014 @LI{count}is specified, the cursor moves down
1015 @LI{count - 1}lines.
1017 It is not an error to use the
1019 command when the cursor is on the last character in the line or
1020 when the line is empty.
1024 command may be used as the motion component of other
1026 commands, in which case any text copied into a buffer is
1027 character oriented, unless the cursor is at, or before the first
1028 nonblank character in the line, in which case it is line oriented.
1029 It is not an error to use the
1031 command as a motion component when the cursor is on the last character
1032 in the line, although it is an error when the line is empty.
1035 Set to the current line plus
1038 Set to the last character in the line.
1044 @deftypefn Command {} {%}
1046 Move to the matching character.
1047 The cursor moves to the parenthesis or curly brace which
1049 the parenthesis or curly brace found at the current cursor position
1050 or which is the closest one to the right of the cursor on the line.
1051 It is an error to execute the
1053 command on a line without a parenthesis or curly brace.
1055 @LI{count}specified to the
1057 command was ignored.
1061 command is an absolute movement.
1064 command may be used as the motion component of other
1066 commands, in which case any text copied into a buffer is
1067 character oriented, unless the starting point of the region is at
1068 or before the first nonblank character on its line, and the ending
1069 point is at or after the last nonblank character on its line, in
1070 which case it is line oriented.
1073 Set to the line containing the matching character.
1075 Set to the matching character.
1081 @deftypefn Command {} {&}
1083 Repeat the previous substitution command on the current line.
1086 @LI{count}specified to the
1088 command was ignored.
1093 Unchanged if the cursor was on the last character in the line,
1094 otherwise, set to the first nonblank character in the line.
1105 @cindex SQUOTE<character>
1106 @deftypefn Command {} {'<character>}
1108 @cindex `<character>
1109 @deftypefnx Command {} `<character>
1110 Return to a context marked by the character
1113 @LI{<character>}is the
1117 character, return to the previous context.
1119 @LI{<character>}is any other character,
1120 return to the context marked by that character (see the
1122 command for more information).
1123 If the command is the
1125 command, only the line value is restored,
1126 and the cursor is placed on the first nonblank character of that line.
1127 If the command is the
1129 command, both the line and column values are restored.
1131 It is an error if the context no longer exists because of
1133 (Contexts follow lines that are moved, or which are deleted
1140 commands are both absolute movements.
1141 They may be used as a motion component for other
1146 command, any text copied into a buffer is line oriented.
1150 any text copied into a buffer is character oriented,
1151 unless it both starts and stops at the first character in the line,
1152 in which case it is line oriented.
1153 In addition, when using the
1155 command as a motion component,
1156 commands which move backward and started at the first character in the line,
1157 or move forward and ended at the first character in the line,
1158 are corrected to the last character of the line preceding the starting and
1159 ending lines, respectively.
1162 Set to the line from the context.
1164 Set to the first nonblank character in the line, for the
1166 command, and set to the context's column for the
1174 @deftypefn Command {} {[count] (}
1177 @LI{count}sentences.
1181 command is an absolute movement.
1184 command may be used as the motion component of other
1187 in which case any text copied into a buffer is character oriented,
1188 unless the starting and stopping points of the region are the first
1189 character in the line,
1190 in which case it is line oriented.
1191 If it is line oriented,
1192 the starting point of the region is adjusted to be the end of the line
1193 immediately before the starting cursor position.
1196 Set to the line containing the beginning of the sentence.
1198 Set to the first nonblank character of the sentence.
1206 @deftypefn Command {[count]} {)}
1209 @LI{count}sentences.
1213 command is an absolute movement.
1216 command may be used as the motion component of other
1218 commands, in which case any text copied into a buffer is
1219 character oriented, unless the starting point of the region is the
1220 first character in the line, in which case it is line oriented.
1221 In the latter case, if the stopping point of the region is also
1222 the first character in the line, it is adjusted to be the end of the
1223 line immediately before it.
1226 Set to the line containing the beginning of the sentence.
1228 Set to the first nonblank character of the sentence.
1236 @deftypefn Command {[count]} {,}
1238 Reverse find character
1246 command, searching the other way in the line,
1254 command has not been performed yet.
1258 command may be used as the motion component of other
1260 commands, in which case any text copied into a buffer is
1266 Set to the searched-for character for the
1271 before the character for the
1274 and after the character for the
1282 @deftypefn Command {[count]} {-}
1284 Move to the first nonblank of the previous line,
1287 It is an error if the movement is past the beginning of the file.
1291 command may be used as the motion component of other
1293 commands, in which case any text copied into a buffer is
1297 Set to the current line minus
1300 Set to the first nonblank character in the line.
1306 @deftypefn Command {[count]} {.}
1310 command that modified text.
1311 The repeated command may be a command and motion component combination.
1313 @LI{count}is specified, it replaces
1315 the count specified for the repeated command, and, if applicable, for
1316 the repeated motion component.
1318 @LI{count}is not specified, the counts originally specified to the command being
1319 repeated are used again.
1321 As a special case, if the
1323 command is executed immediately after the
1325 command, the change log is rolled forward or backward, depending on
1331 Set as described for the repeated command.
1333 Set as described for the repeated command.
1339 @deftypefn Command {} {/RE<carriage-return>}
1341 @deftypefnx Command {} {/RE/} {[offset]<carriage-return>}
1343 @deftypefnx Command {} {?RE<carriage-return>}
1344 @deftypefnx Command {} {?RE?} {[offset]<carriage-return>}
1346 @deftypefnx Command {} N
1348 @deftypefnx Command {} n
1349 Search forward or backward for a regular expression.
1350 The commands beginning with a slash
1352 character are forward searches, the commands beginning with a
1355 are backward searches.
1357 prompts with the leading character on the last line of the screen
1359 It then searches forward or backward in the file for the next
1360 occurrence of the string, which is interpreted as a Basic Regular
1367 commands are absolute movements.
1368 They may be used as the motion components of other
1370 commands, in which case any text copied into a buffer is
1371 character oriented, unless the search started and ended on
1372 the first column of a line, in which case it is line oriented.
1373 In addition, forward searches ending at the first character of a line,
1374 and backward searches beginning at the first character in the line,
1375 are corrected to begin or end at the last character of the previous line.
1376 (Note, forward and backward searches can occur for both
1384 If an offset from the matched line is specified (i.e. a trailing
1388 character is followed by a signed offset), the buffer will always
1389 be line oriented (e.g.
1391 will always guarantee a line orientation).
1395 command repeats the previous search, but in the reverse direction.
1398 command repeats the previous search.
1403 commands are used as motion components for the
1405 command, you will not be prompted for the text of the bang command,
1406 instead the previous bang command will be executed.
1409 @QT{//<carriage-return>},
1410 @QT{/<carriage-return>},
1411 @QT{??<carriage-return>},
1413 @QT{?<carriage-return>}
1414 search for the last search RE, in the indicated direction.
1416 Searches may be interrupted using the
1417 @LI{<interrupt>}character.
1419 Multiple search patterns may be grouped together by delimiting
1420 them with semicolons and zero or more whitespace characters, e.g.
1421 @LI{/foo/ ; ?bar?}searches forward for
1422 @LI{foo}and then, from that location, backwards for
1424 When search patterns are grouped together in this manner,
1425 the search patterns are evaluated left to right with the
1426 final cursor position determined by the last search pattern.
1428 It is also permissible to append a
1430 command to the search strings, e.g.
1431 @LI{/foo/ z.}searches forward for the next occurrence of
1433 and then positions that line in the middle of screen.
1436 Set to the line in which the match occurred.
1438 Set to the first character of the matched string.
1451 @deftypefn Command {} {0}
1453 Move to the first character in the current line.
1454 It is not an error to use the
1456 command when the cursor is on the first character in the line,
1460 command may be used as the motion component of other
1463 in which case it is an error if the cursor is on the first character
1465 and any text copied into a buffer is character oriented.
1470 Set to the first character in the line.
1476 @deftypefn Command {} {:}
1484 command on the last line of the screen, using a colon
1487 The command is terminated by a
1488 @LI{<carriage-return>},
1490 @LI{<escape>}character; all of these characters may be escaped by using a
1491 @LI{<literal-next>}character.
1492 The command is then executed.
1496 command writes to the screen,
1498 will prompt the user for a
1499 @LI{<carriage-return>}before continuing
1503 Large amounts of output from the
1505 command will be paged for the user, and the user prompted for a
1506 @LI{<carriage-return>}or
1507 @LI{<space>}key to continue.
1508 In some cases, a quit (normally a
1511 @LI{<interrupt>}may be entered to interrupt the
1517 command finishes, and the user is prompted to resume visual mode,
1518 it is also possible to enter another
1520 character followed by another
1525 The current line is set as described for the
1529 The current column is set as described for the
1533 Affected as described for the
1539 @deftypefn Command {[count]} {;}
1541 Repeat the last character find
1543 The last character find is one of the
1556 command has not been performed yet.
1560 command may be used as the motion component of other
1562 commands, in which case any text copied into a buffer is
1568 Set to the searched-for character for the
1573 before the character for the
1576 and after the character for the
1584 @deftypefn Command {[count]} {< motion}
1587 @deftypefnx Command {[count]} {>} {motion}
1588 Shift lines left or right.
1589 Shift the number of lines in the region specified by the
1591 @LI{motion}left (for the
1593 command) or right (for the
1595 command) by the number of columns specified by the
1598 Only whitespace characters are deleted when shifting left.
1599 Once the first character in the line no longer contains a whitespace
1600 character, the command will succeed,
1601 but the line will not be modified.
1606 Set to the first nonblank character in the line.
1614 @deftypefn Command {} {@@} {buffer}
1616 Execute a named buffer.
1617 Execute the named buffer as
1620 The buffer may include
1622 commands, too, but they must be expressed as a
1625 If the buffer is line oriented,
1626 @LI{<newline>}characters are logically appended to each line of the buffer.
1627 If the buffer is character oriented,
1628 @LI{<newline>}characters are logically appended to all but the last line in the buffer.
1630 If the buffer name is
1634 then the last buffer executed shall be used.
1635 It is an error to specify
1639 if there were no previous buffer executions.
1640 The text of a buffer may contain a
1643 and it is possible to create infinite loops in this manner.
1645 @LI{<interrupt>}character may be used to interrupt the loop.)
1648 The current line is set as described for the command(s).
1650 The current column is set as described for the command(s).
1656 @deftypefn Command {[count]} {A}
1658 Enter input mode, appending the text after the end of the line.
1660 @LI{count}is specified, the text is repeatedly input
1661 @LI{count - 1}more times after input mode is exited.
1664 Set to the last line upon which characters were entered.
1666 Set to the last character entered.
1680 @deftypefn Command {[count]} {B}
1684 Move the cursor backward to the beginning of a bigword by repeating the
1685 following algorithm: if the current position is at the beginning of a
1686 bigword or the character at the current position cannot be part of a bigword,
1687 move to the first character of the preceding bigword.
1688 Otherwise, move to the first character of the bigword at the current position.
1689 If no preceding bigword exists on the current line, move to the first
1690 character of the last bigword on the first preceding line that contains a
1695 command may be used as the motion component of other
1697 commands, in which case any text copied into a buffer is
1701 Set to the line containing the word selected.
1703 Set to the first character of the word selected.
1709 @deftypefn Command {[buffer]} {[count] C}
1711 Change text from the current position to the end-of-line.
1713 @LI{count}is specified, the input text replaces from the current position to
1714 the end-of-line, plus
1715 @LI{count - 1}subsequent lines.
1718 Set to the last line upon which characters were entered.
1720 Set to the last character entered.
1734 @deftypefn Command {[buffer]} {D}
1736 Delete text from the current position to the end-of-line.
1738 It is not an error to execute the
1740 command on an empty line.
1745 Set to the character before the current character, or, column 1 if
1746 the cursor was on column 1.
1752 @deftypefn Command {[count]} {E}
1755 @LI{count}end-of-bigwords.
1756 Move the cursor forward to the end of a bigword by repeating the
1757 following algorithm: if the current position is the end of a
1758 bigword or the character at that position cannot be part of a bigword,
1759 move to the last character of the following bigword.
1760 Otherwise, move to the last character of the bigword at the current
1762 If no succeeding bigword exists on the current line,
1763 move to the last character of the first bigword on the next following
1764 line that contains a bigword.
1768 command may be used as the motion component of other
1770 commands, in which case any text copied into a buffer is
1774 Set to the line containing the word selected.
1776 Set to the last character of the word selected.
1782 @deftypefn Command {[count]} {F} {<character>}
1785 @LI{count}times backward through the current line for
1790 command may be used as the motion component of other
1792 commands, in which case any text copied into a buffer is
1798 Set to the searched-for character.
1804 @deftypefn Command {[count]} {G}
1808 or the last line of the file if
1809 @LI{count}not specified.
1813 command is an absolute movement.
1816 command may be used as the motion component of other
1818 commands, in which case any text copied into a buffer is
1824 if specified, otherwise, the last line.
1826 Set to the first nonblank character in the line.
1832 @deftypefn Command {[count]} {H}
1834 Move to the screen line
1835 @LI{count - 1}lines below the top of the screen.
1839 command is an absolute movement.
1842 command may be used as the motion component of other
1844 commands, in which case any text copied into a buffer is
1849 @LI{count - 1}lines below the top of the screen.
1851 Set to the first nonblank character of the
1859 @deftypefn Command {[count]} {I}
1861 Enter input mode, inserting the text at the beginning of the line.
1863 @LI{count}is specified, the text input is repeatedly input
1864 @LI{count - 1}more times.
1867 Set to the last line upon which characters were entered.
1869 Set to the last character entered.
1875 @deftypefn Command {[count]} {J}
1879 @LI{count}is specified,
1880 @LI{count}lines are joined; a minimum of two lines are always joined,
1881 regardless of the value of
1884 If the current line ends with a whitespace character, all whitespace
1885 is stripped from the next line.
1886 Otherwise, if the next line starts with a open parenthesis
1889 Otherwise, if the current line ends with a question mark
1893 or exclamation point
1896 Otherwise, insert a single space.
1898 It is not an error to join lines past the end of the file,
1899 i.e. lines that do not exist.
1904 Set to the character after the last character of the next-to-last
1911 @deftypefn Command {[count]} {L}
1913 Move to the screen line
1914 @LI{count - 1}lines above the bottom of the screen.
1918 command is an absolute movement.
1921 command may be used as the motion component of other
1923 commands, in which case any text copied into a buffer is
1928 @LI{count - 1}lines above the bottom of the screen.
1930 Set to the first nonblank character of the
1938 @deftypefn Command {} {M}
1940 Move to the screen line in the middle of the screen.
1944 command is an absolute movement.
1947 command may be used as the motion component of other
1949 commands, in which case any text copied into a buffer is
1953 @LI{count}specified to the
1955 command was ignored.
1958 Set to the line in the middle of the screen.
1960 Set to the first nonblank character of the
1968 @deftypefn Command {[count]} {O}
1970 Enter input mode, appending text in a new line above the current line.
1972 @LI{count}is specified, the text input is repeatedly input
1973 @LI{count - 1}more times.
1976 @LI{count}specified to the
1978 command was ignored.
1981 Set to the last line upon which characters were entered.
1983 Set to the last character entered.
1997 @deftypefn Command {[buffer]} {P}
1999 Insert text from a buffer.
2000 Text from the buffer (the unnamed buffer by default) is inserted
2001 before the current column or, if the buffer is line oriented,
2002 before the current line.
2005 Set to the lowest numbered line insert,
2006 if the buffer is line oriented, otherwise unchanged.
2008 Set to the first nonblank character of the appended text,
2009 if the buffer is line oriented, otherwise, the last character
2010 of the appended text.
2016 @deftypefn Command {} {Q}
2020 (or visual) mode and switch to
2033 @deftypefn Command {[count]} {R}
2035 Enter input mode, replacing the characters in the current line.
2037 @LI{count}is specified, the text input is repeatedly input
2038 @LI{count - 1}more times.
2040 If the end of the current line is reached, no more characters are
2041 replaced and any further characters input are appended to the line.
2044 Set to the last line upon which characters were entered.
2046 Set to the last character entered.
2060 @deftypefn Command {[buffer] [count]} {S}
2066 Set to the last line upon which characters were entered.
2068 Set to the last character entered.
2082 @deftypefn Command {[count]} {T} {<character>}
2086 through the current line for the character
2093 command may be used as the motion component of other
2095 commands, in which case any text copied into a buffer is
2101 Set to the character
2103 the searched-for character.
2109 @deftypefn Command {} {U}
2111 Restore the current line to its state before the cursor last
2117 The first character in the line.
2123 @deftypefn Command {[count]} {W}
2127 Move the cursor forward to the beginning of a bigword by repeating the
2128 following algorithm: if the current position is within a bigword or the
2129 character at that position cannot be part of a bigword, move to the first
2130 character of the next bigword.
2131 If no subsequent bigword exists on the current line,
2132 move to the first character of the first bigword on the first following
2133 line that contains a bigword.
2137 command may be used as the motion component of other
2139 commands, in which case any text copied into a buffer is
2143 The line containing the word selected.
2145 The first character of the word selected.
2151 @deftypefn Command {[buffer] [count]} {X}
2154 @LI{count}characters before the cursor.
2155 If the number of characters to be deleted is greater than or equal to
2156 the number of characters to the beginning of the line, all of the
2157 characters before the current cursor position, to the beginning of the
2163 Set to the current character minus
2165 or the first character if count is greater than the number of
2166 characters in the line before the cursor.
2172 @deftypefn Command {[buffer] [count]} {Y}
2176 @LI{count}lines into the specified buffer.
2187 @deftypefn Command {} {ZZ}
2189 Write the file and exit
2191 The file is only written if it has been modified since the last
2192 complete write of the file to any file.
2196 command will exit the editor after writing the file,
2197 if there are no further files to edit.
2206 in a row will override this check and the editor will exit,
2207 ignoring any files that have not yet been edited.
2218 @deftypefn Command {[count]} {[[}
2221 @LI{count}section boundaries.
2225 command is an absolute movement.
2228 command may be used as the motion component of other
2230 commands, in which case any text copied into a buffer is
2231 character oriented, unless the starting position is column 0,
2232 in which case it is line oriented.
2234 It is an error if the movement is past the beginning of the file.
2237 Set to the previous line that is
2238 @LI{count}section boundaries back,
2239 or the first line of the file if no more section boundaries exist
2240 preceding the current line.
2242 Set to the first nonblank character in the line.
2250 @deftypefn Command {[count]} {]]}
2253 @LI{count}section boundaries.
2257 command is an absolute movement.
2260 command may be used as the motion component of other
2262 commands, in which case any text copied into a buffer is
2263 character oriented, unless the starting position is column 0,
2264 in which case it is line oriented.
2266 It is an error if the movement is past the end of the file.
2269 Set to the line that is
2270 @LI{count}section boundaries forward,
2271 or to the last line of the file if no more section
2272 boundaries exist following the current line.
2274 Set to the first nonblank character in the line.
2282 @deftypefn Command {} {^}
2284 Move to first nonblank character on the current line.
2288 command may be used as the motion component of other
2290 commands, in which case any text copied into a buffer is
2296 Set to the first nonblank character of the current line.
2302 @deftypefn Command {[count]} {_}
2305 @LI{count - 1}lines, to the first nonblank character.
2308 command may be used as the motion component of other
2310 commands, in which case any text copied into a buffer is
2313 It is not an error to execute the
2315 command when the cursor is on the first character in the line.
2318 The current line plus
2321 The first nonblank character in the line.
2327 @deftypefn Command {[count]} {a}
2329 Enter input mode, appending the text after the cursor.
2331 @LI{count}is specified, the text input is repeatedly input
2332 @LI{count - 1}more times.
2335 Set to the last line upon which characters were entered.
2337 Set to the last character entered.
2351 @deftypefn Command {[count]} {b}
2355 Move the cursor backward to the beginning of a word by repeating the
2356 following algorithm: if the current position is at the beginning of a word,
2357 move to the first character of the preceding word.
2358 Otherwise, the current position moves to the first character of the word
2359 at the current position.
2360 If no preceding word exists on the current line, move to the first
2361 character of the last word on the first preceding line that contains
2366 command may be used as the motion component of other
2368 commands, in which case any text copied into a buffer is
2372 Set to the line containing the word selected.
2374 Set to the first character of the word selected.
2380 @deftypefn Command {[buffer] [count]} {c} {motion}
2382 Change the region of text specified by the
2385 If only part of a single line is affected, then the last character
2386 being changed is marked with a
2388 Otherwise, the region of text is deleted, and input mode is entered.
2391 Set to the last line upon which characters were entered.
2393 Set to the last character entered.
2407 @deftypefn Command {[buffer] [count]} {d} {motion}
2409 Delete the region of text specified by the
2414 Set to the line where the region starts.
2416 Set to the first character in the line after the last character in the
2418 If no such character exists, set to the last character before the region.
2424 @deftypefn Command {[count]} {e}
2427 @LI{count}end-of-words.
2428 Move the cursor forward to the end of a word by repeating the following
2429 algorithm: if the current position is the end of a word,
2430 move to the last character of the following word.
2431 Otherwise, move to the last character of the word at the current position.
2432 If no succeeding word exists on the current line, move to the last character
2433 of the first word on the next following line that contains a word.
2437 command may be used as the motion component of other
2439 commands, in which case any text copied into a buffer is
2443 Set to the line containing the word selected.
2445 Set to the last character of the word selected.
2451 @deftypefn Command {[count]} {f} {<character>}
2454 @LI{count}times, through the rest of the current line for
2459 command may be used as the motion component of other
2461 commands, in which case any text copied into a buffer is
2467 Set to the searched-for character.
2473 @deftypefn Command {[count]} {i}
2475 Enter input mode, inserting the text before the cursor.
2477 @LI{count}is specified, the text input is repeatedly input
2478 @LI{count - 1}more times.
2481 Set to the last line upon which characters were entered.
2483 Set to the last character entered.
2497 @deftypefn Command {} {m} {<character>}
2499 Save the current context (line and column) as
2501 The exact position is referred to by
2503 The line is referred to by
2507 @LI{<character>}was restricted to lower-case letters.
2509 permits the use of any character.
2520 @deftypefn Command {[count]} {o}
2522 Enter input mode, appending text in a new line under the current line.
2524 @LI{count}is specified, the text input is repeatedly input
2525 @LI{count - 1}more times.
2528 @LI{count}specified to the
2530 command was ignored.
2533 Set to the last line upon which characters were entered.
2535 Set to the last character entered.
2549 @deftypefn Command {[buffer]} {p}
2551 Append text from a buffer.
2552 Text from the buffer (the unnamed buffer by default) is appended
2553 after the current column or, if the buffer is line oriented,
2554 after the current line.
2557 Set to the first line appended, if the buffer is line oriented,
2558 otherwise unchanged.
2560 Set to the first nonblank character of the appended text if the buffer
2561 is line oriented, otherwise, the last character of the appended text.
2567 @deftypefn Command {[count]} {r} {<character>}
2571 @LI{count}characters in the line are replaced with
2573 Replacing characters with
2574 @LI{<newline>}characters results in creating new, empty lines into the file.
2579 the command is cancelled.
2582 Unchanged unless the replacement character is a
2584 in which case it is set to the current line plus
2587 Set to the last character replaced,
2588 unless the replacement character is a
2590 in which case the cursor is in column 1 of the last line inserted.
2596 @deftypefn Command {[buffer] [count]} {s}
2599 @LI{count}characters in the current line starting with the current character.
2602 Set to the last line upon which characters were entered.
2604 Set to the last character entered.
2618 @deftypefn Command {[count]} {t} {<character>}
2621 @LI{count}times, through the current line for the character immediately
2627 command may be used as the motion component of other
2629 commands, in which case any text copied into a buffer is
2635 Set to the character
2637 the searched-for character.
2643 @deftypefn Command {} {u}
2645 Undo the last change made to the file.
2648 command alternates between these two states, and is its own inverse.
2649 When used after an insert that inserted text on more than one line,
2650 the lines are saved in the numeric buffers.
2654 command, when used immediately after the
2656 command, causes the change log to be rolled forward or backward,
2657 depending on the action of the
2662 Set to the position of the first line changed, if the reversal affects
2663 only one line or represents an addition or change; otherwise, the line
2664 preceding the deleted text.
2666 Set to the cursor position before the change was made.
2672 @deftypefn Command {[count]} {w}
2676 Move the cursor forward to the beginning of a word by repeating the
2677 following algorithm: if the current position is at the
2678 beginning of a word, move to the first character of the next word.
2679 If no subsequent word exists on the current line, move to the first
2680 character of the first word on the first following line that contains
2685 command may be used as the motion component of other
2687 commands, in which case any text copied into a buffer is
2691 Set to the line containing the word selected.
2693 Set to the first character of the word selected.
2699 @deftypefn Command {[buffer] [count]} {x}
2702 @LI{count}characters.
2703 The deletion is at the current character position.
2704 If the number of characters to be deleted is greater than or equal to
2705 the number of characters to the end of the line, all of the characters
2706 from the current cursor position to the end of the line are deleted.
2711 Unchanged unless the last character in the line is deleted and the cursor
2712 is not already on the first character in the line, in which case it is
2713 set to the previous character.
2719 @deftypefn Command {[buffer] [count]} y {motion}
2723 the text region specified by the
2729 Unchanged, unless the region covers more than a single line,
2730 in which case it is set to the line where the region starts.
2732 Unchanged, unless the region covers more than a single line,
2733 in which case it is set to the character were the region starts.
2739 @deftypefn Command {[count1]} {z} {[count2] type}
2741 Redraw the screen with a window
2742 @LI{count2}lines long, with line
2743 @LI{count1}placed as specified by the
2746 @LI{count1}is not specified, it defaults to the current line.
2748 @LI{count2}is not specified, it defaults to the current window size.
2751 @LI{type}characters may be used:
2755 @LI{count1}is specified, place the line
2756 @LI{count1}at the top of the screen.
2757 Otherwise, display the screen after the current screen, similarly to the
2760 @item <carriage-return>
2762 @LI{count1}at the top of the screen.
2765 @LI{count1}in the center of the screen.
2768 @LI{count1}at the bottom of the screen.
2771 @LI{count1}is specified, place the line that is at the top of the screen
2773 @LI{count1}is at the bottom of the screen, at the bottom of the screen,
2774 i.e. display the screen before the screen before
2776 Otherwise, display the screen before the current screen, similarly to the
2784 @LI{count1}is not specified and the
2785 @LI{type}character was either
2789 in which case it is set to the line before the first line on the
2790 previous screen or the line after the last line on the previous
2791 screen, respectively.
2793 Set to the first nonblank character in the line.
2799 @deftypefn Command {[count]} @{
2802 @LI{count}paragraphs.
2806 command is an absolute movement.
2809 command may be used as the motion component of other
2811 commands, in which case any text copied into a buffer is
2812 character oriented, unless the starting character is the first
2813 character on its line, in which case it is line oriented.
2816 Set to the line containing the beginning of the previous paragraph.
2818 Set to the first nonblank character in the line.
2826 @deftypefn Command {[count]} {|}
2830 position on the current line.
2834 command may be used as the motion component of other
2836 commands, in which case any text copied into a buffer is
2838 It is an error to use the
2840 command as a motion component and for the cursor not to move.
2845 Set to the character occupying the column position identified by
2847 if the position exists in the line.
2848 If the column length of the current line is less than
2850 the cursor is moved to the last character in the line.
2856 @deftypefn Command {[count]} @}
2859 @LI{count}paragraphs.
2863 command is an absolute movement.
2866 command may be used as the motion component of other
2868 commands, in which case any text copied into a buffer is
2869 character oriented, unless the starting character is at or
2870 before any nonblank characters in its line,
2871 in which case it is line oriented.
2874 Set to the line containing the beginning of the next paragraph.
2876 Set to the first nonblank character in the line.
2884 @deftypefn Command {[count]} {~}
2886 Reverse the case of the next
2887 @LI{count}character(s).
2888 This is the historic semantic for the
2890 command and it is only in effect if the
2894 Lowercase alphabetic characters are changed to uppercase,
2895 and uppercase characters are changed to lowercase.
2896 No other characters are affected.
2900 command did not take an associated count, nor did it move past the
2901 end of the current line.
2902 As it had no associated motion it was difficult to change the case
2903 of large blocks of text.
2906 if the cursor is on the last character of a line, and there are
2907 more lines in the file, the cursor moves to the next line.
2909 It is not an error to specify a count larger than the number of
2910 characters between the cursor and the end of the file.
2913 Set to the line of the character after
2914 @LI{count}characters, or, end of file.
2916 Set to the character after
2917 @LI{count}characters, or, end-of-file.
2925 @deftypefn Command {[count]} {~} {motion}
2927 Reverse the case of the characters in a text region specified by the
2930 Only in effect if the
2934 Lowercase characters are changed to uppercase,
2935 and uppercase characters are changed to lowercase.
2936 No other characters are affected.
2939 Set to the line of the character after the last character in the region.
2941 Set to the character after the last character in the region.
2949 @deftypefn Command {} {<interrupt>}
2951 Interrupt the current operation.
2952 Many of the potentially long-running
2954 commands may be interrupted using the terminal interrupt character.
2955 These operations include searches, file reading and writing, filter
2956 operations and map character expansion.
2957 Interrupts are also enabled when running commands outside of
2961 @LI{<interrupt>}character is used to interrupt while entering an
2963 command, the command is aborted, the cursor returns to its previous
2966 remains in command mode.
2969 @LI{<interrupt>}character is used to interrupt any
2970 operation, any changes made before the interrupt are left in place.
2973 Dependent on the operation being interrupted.
2975 Dependent on the operation being interrupted.
2980 @chapter Vi Text Input Commands
2982 The following section describes the commands available in the text
2989 implementations only permitted the characters inserted on the current
2991 In addition, only the
2992 @LI{<control-D>}erase character and the
2996 erase strings could erase autoindent characters.
2997 (Autoindent characters include both the characters inserted automatically
2998 at the beginning of an input line as well as characters inserted using the
2999 @LI{<control-T>}command.)
3000 This implementation permits erasure to continue past the beginning
3001 of the current line, and back to where text input mode was entered.
3002 In addition, autoindent characters may be erased using the standard
3004 For the line and word erase characters, reaching the autoindent
3007 boundary, denoting the end of the current word or line erase.
3008 Repeating the word or line erase key will erase the autoindent characters.
3014 @LI{<control-W>}as character and word erase characters, respectively, regardless of
3015 the current terminal settings.
3016 This implementation accepts, in addition to these two characters,
3017 the current terminal characters for those operations.
3019 @deftypefn Input {} {<nul>}
3021 If the first character of the input is a
3023 the previous input is replayed, as if just entered.
3026 @deftypefn Input {} {<control-D>}
3028 If the previous character on the line was an autoindent character,
3029 erase characters to move the cursor back to the column immediately
3030 after the previous (1-based) column which is a multiple of the
3033 This may result in any number of
3035 @LI{<space>}characters preceding the cursor being changed.
3039 option is set and the user is entering the first character in the line,
3040 @LI{<control-D>}is ignored.
3041 Otherwise, a literal
3042 @LI{<control-D>}character is entered.
3044 @cindex ^<control-D>
3045 @deftypefn Input {} {^<control-D>}
3047 If the previous character on the line was an autoindent character,
3048 erase all of the autoindent characters on the line.
3049 In addition, the autoindent level is reset to 0.
3051 @cindex 0<control-D>
3052 @deftypefn Input {} {0<control-D>}
3054 If the previous character on the line was an autoindent character,
3055 erase all of the autoindent characters on the line.
3056 The autoindent level is not altered.
3059 @deftypefn Input {} {<control-T>}
3063 @LI{<space>}characters to move the cursor forward to the column immediately
3064 after the next (1-based) column which is a multiple of the
3067 This may result in any number of
3069 @LI{<space>}characters preceding the cursor being changed.
3074 @LI{<control-T>}command to be used unless the cursor was at the first column of a new
3075 line or it was preceded only by autoindent characters.
3077 permits it to be used at any time during insert mode.
3080 @deftypefn Input {} {<erase>}
3083 @deftypefnx Input {} {<control-H>}
3084 Erase the last character.
3086 @cindex "<literal-next>"
3087 @deftypefn Input {} {<literal-next>}
3089 Quote the next character.
3090 The next character will not be mapped (see the
3092 command for more information)
3093 or interpreted specially.
3096 character will be displayed immediately as a placeholder,
3097 but will be replaced by the next character.
3100 @deftypefn Input {} {<escape>}
3102 If on the colon command line, and the
3104 edit option is set, behave as described for that option.
3105 Otherwise, if on the colon command line,
3106 execute the command.
3107 Otherwise, if not on the colon command line,
3108 resolve all text input into the file, and return to command mode.
3110 @cindex "<line erase>"
3111 @deftypefn Input {} {<line erase>}
3113 Erase the current line.
3115 @cindex "<control-W>"
3116 @deftypefn Input {} {<control-W>}
3118 @cindex "<word erase>"
3119 @deftypefnx Input {} {<word erase>}
3120 Erase the last word.
3121 The definition of word is dependent on the
3127 @cindex "<control-X>"
3128 @deftypefn Input {} {<control-X>[0-9A-Fa-f]+}
3130 Insert a character with the specified hexadecimal value into the text.
3131 The value is delimited by any non-hexadecimal character or the input
3132 of the maximum number of characters that can be translated into a single
3136 @deftypefn Input {} {<interrupt>}
3138 Interrupt text input mode, returning to command mode.
3140 @LI{<interrupt>}character is used to interrupt inserting text into the file,
3142 @LI{<escape>}character was used; all text input up to the interruption is
3143 resolved into the file.