This appendix gives the uses the editor makes  of  each
character.   The  characters are presented in their order in
the ASCII character set:   Control  characters  come  first,
then  most  special  characters,  then the digits, upper and
then lower case characters.

     For each character we tell a meaning it has as  a  com-
mand  and  any  meaning  it has during an insert.  If it has
only meaning as a command,  then  only  this  is  discussed.
Section  numbers in parentheses indicate where the character
is discussed; a `f' after the section number means that  the
character is mentioned in a footnote.

^@             Not a command character.   If  typed  as  the
               first   character   of  an  insertion  it  is
               replaced with the last text inserted, and the
               insert  terminates.   Only 128 characters are
               saved from the last insert; if  more  charac-
               ters  were  inserted  the  mechanism  is  not
               available.  A ^@ cannot be part of  the  file
               due to the editor implementation (7.5f).

^A             Unused.

^B             Backward window.  A count  specifies  repeti-
               tion.   Two  lines  of continuity are kept if
               possible (2.1, 6.1, 7.2).

^C             Unused.

^D             As a command, scrolls down a  half-window  of
               text.  A  count gives the number of (logical)
               lines to scroll, and is remembered for future
               ^D  and  ^U  commands  (2.1, 7.2).  During an
               insert, backtabs over autoindent white  space
               at  the  beginning of a line (6.6, 7.5); this
               white space cannot be backspaced over.

^E             Exposes  one  more  line  below  the  current
               screen  in the file, leaving the cursor where
               it is if possible.  (Version 3 only.)

^F             Forward window.  A  count  specifies  repeti-
               tion.   Two  lines  of continuity are kept if
               possible (2.1, 6.1, 7.2).

^G             Equivalent  to  :fCR,  printing  the  current
               file,  whether  it  has  been  modified,  the
               current line number and the number  of  lines
               in  the  file,  and the percentage of the way
               through the file that you are.
               insert,  eliminates the last input character,
               backing  over  it  but  not  erasing  it;  it
               remains  so you can see what you typed if you
               wish to type  something  only  slightly  dif-
               ferent (3.1, 7.5).

^I (TAB)       Not a command character.   When  inserted  it
               prints  as  some  number of spaces.  When the
               cursor is at a tab character it rests at  the
               last  of  the spaces which represent the tab.
               The spacing of tabstops is controlled by  the
               tabstop option (4.1, 6.6).

^J (LF)        Same as down arrow (see j).

^K             Unused.

^L             The ASCII formfeed character, this causes the
               screen  to  be  cleared and redrawn.  This is
               useful after a transmission error, if charac-
               ters typed by a program other than the editor
               scramble  the  screen,  or  after  output  is
               stopped by an interrupt (5.4, 7.2f).

^M (CR)        A carriage return advances to the next  line,
               at  the first non-white position in the line.
               Given a count, it advances  that  many  lines
               (2.3).   During  an  insert,  a CR causes the
               insert to continue onto another line (3.1).

^N             Same as down arrow (see j).

^O             Unused.

^P             Same as up arrow (see k).

^Q             Not a command character.  In input  mode,  ^Q
               quotes  the  next  character, the same as ^V,
               except that some teletype  drivers  will  eat
               the ^Q so that the editor never sees it.

^R             Redraws the current screen, eliminating logi-
               cal lines not corresponding to physical lines
               (lines with only  a  single  @  character  on
               them).   On  hardcopy terminals in open mode,
               retypes the current line (5.4, 7.2, 7.8).

^S             Unused.  Some  teletype  drivers  use  ^S  to
               suspend output until ^Qis

^T             Not a command character.  During  an  insert,
               with  autoindent  set and at the beginning of
               scrolls down.  Counts work as they do for ^D,
               and the previous scroll amount is  common  to
               both.   On  a  dumb  terminal,  ^U will often
               necessitate clearing and redrawing the screen
               further back in the file (2.1, 7.2).

^V             Not a  command  character.   In  input  mode,
               quotes  the next character so that it is pos-
               sible  to  insert  non-printing  and  special
               characters into the file (4.2, 7.5).

^W             Not a command character.  During  an  insert,
               backs  up  as  b  would  in command mode; the
               deleted characters remain on the display (see
               ^H) (7.5).

^X             Unused.

^Y             Exposes  one  more  line  above  the  current
               screen,  leaving  the  cursor  where it is if
               possible.  (No mnemonic value for  this  key;
               however,  it is next to ^U which scrolls up a
               bunch.) (Version 3 only.)

^Z             If supported by the Unix  system,  stops  the
               editor, exiting to the top level shell.  Same
               as :stopCR.  Otherwise, unused.

^[ (ESC)       Cancels a partially formed command, such as a
               z  when  no  following character has yet been
               given; terminates inputs  on  the  last  line
               (read  by  commands  such as : / and ?); ends
               insertions of new text into the  buffer.   If
               an  ESC  is  given  when quiescent in command
               state, the editor rings the bell  or  flashes
               the  screen.   You  can  thus  hit ESC if you
               don't know what is happening till the  editor
               rings the bell.  If you don't know if you are
               in insert mode you can type  ESCa,  and  then
               material  to  be  input; the material will be
               inserted correctly whether or not you were in
               insert mode when you started (1.5, 3.1, 7.5).

^\             Unused.

^]             Searches for the word which is after the cur-
               sor as a tag.  Equivalent to typing :ta, this
               word, and then a CR.  Mnemonically, this com-
               mand is ``go right to'' (7.3).


^^ Equivalent to :e #CR, returning to the previ-

               ous  position  in  the  last  edited file, or
               do not want to have to  type  the  file  name
               again  (7.3).  (You have to do a :w before ^^
               will work in this case.  If you do  not  wish
               to  write  the  file  you  should  do :e! #CR
               instead.)

^_             Unused.  Reserved as  the  command  character
               for the Tektronix 4025 and 4027 terminal.

SPACE          Same as right arrow (see l).

!              An operator, which processes lines  from  the
               buffer  with reformatting commands.  Follow !
               with the object to be processed, and then the
               command  name  terminated  by CR.  Doubling !
               and preceding it  by  a  count  causes  count
               lines  to be filtered; otherwise the count is
               passed on to the object after  the  !.   Thus
               2!}fmtCR reformats the next two paragraphs by
               running them through the program fmt.  If you
               are working on LISP, the command  !%grindCR,*
               given  at  the  beginning of a function, will
               run the text of the function through the LISP
               grinder  (6.7,  7.3).   To read a file or the
               output of a command into the  buffer  use  :r
               (7.3).   To  simply  execute a command use :!
               (7.3).

"              Precedes a named buffer specification.  There
               are named buffers 1-9 used for saving deleted
               text and named buffers a-z into which you can
               place text (4.3, 6.3)

#              The macro character which, when followed by a
               number, will substitute for a function key on
               terminals without function  keys  (6.9).   In
               input  mode, if this is your erase character,
               it will delete the last character  you  typed
               in  input mode, and must be preceded with a \
               to insert it, since it  normally  backs  over
               the last input character you gave.

$              Moves to the end of the current line.  If you
               :se listCR, then the end of each line will be
               shown by printing a $ after the  end  of  the
               displayed  text  in the line.  Given a count,
               advances to the  count'th  following  end  of
               line; thus 2$ advances to the end of the fol-
               lowing line.
_________________________
*Both fmt and grind are Berkeley programs and  may  not
be present at all installations.
               balances  the  parenthesis  or  brace  at the
               current cursor position.

&              A synonym for :&CR, by analogy with the ex  &
               command.

'              When followed by a ' returns to the  previous
               context at the beginning of a line.  The pre-
               vious context is  set  whenever  the  current
               line  is  moved  in a non-relative way.  When
               followed by a letter a-z, returns to the line
               which  was  marked  with this letter with a m
               command, at the first non-white character  in
               the  line.  (2.2,  5.3).   When  used with an
               operator such as d, the operation takes place
               over complete lines; if you use `, the opera-
               tion takes place from the exact marked  place
               to  the  current  cursor  position within the
               line.

(              Retreats to the beginning of a  sentence,  or
               to  the  beginning  of a LISP s-expression if
               the lisp option is set.  A sentence ends at a
               .  ! or ? which is followed by either the end
               of a line or by two spaces.   Any  number  of
               closing  )  ]  "  and ' characters may appear
               after the . ! or ?, and before the spaces  or
               end  of  line.  Sentences also begin at para-
               graph and section boundaries (see  {  and  [[
               below).  A count advances that many sentences
               (4.2, 6.8).

)              Advances to the beginning of a  sentence.   A
               count  repeats  the  effect.  See ( above for
               the definition of a sentence (4.2, 6.8).

*              Unused.

+              Same as CR when used as a command.

,              Reverse of the last f F t or T command, look-
               ing the other way in the current line.  Espe-
               cially useful after hitting too many ;  char-
               acters.  A count repeats the search.

-              Retreats to the previous line  at  the  first
               non-white  character.  This is the inverse of
               + and RETURN.  If the line moved to is not on
               the   screen,  the  screen  is  scrolled,  or
               cleared and redrawn if this is not  possible.
               If  a  large  amount  of  scrolling  would be
               required  the  screen  is  also  cleared  and

.              Repeats the last command  which  changed  the
               buffer.    Especially  useful  when  deleting
               words  or  lines;   you   can   delete   some
               words/lines and then hit . to delete more and
               more words/lines.  Given a count,  it  passes
               it  on  to  the command being repeated.  Thus
               after a 2dw, 3.  deletes  three  words  (3.3,
               6.3, 7.2, 7.4).

/              Reads a string from  the  last  line  on  the
               screen,   and  scans  forward  for  the  next
               occurrence of this string.  The normal  input
               editing  sequences  may  be  used  during the
               input on the bottom line; an returns to  com-
               mand   state  without  ever  searching.   The
               search begins when you hit  CR  to  terminate
               the  pattern;  the cursor moves to the begin-
               ning of the last line to  indicate  that  the
               search is in progress; the search may then be
               terminated with a DEL or RUB, or by backspac-
               ing when at the beginning of the bottom line,
               returning the cursor to its initial position.
               Searches  normally  wrap end-around to find a
               string anywhere in the buffer.

               When  used  with  an  operator  the  enclosed
               region  is  normally affected.  By mentioning
               an offset from the line matched by  the  pat-
               tern   you   can  force  whole  lines  to  be
               affected.  To do this give a pattern  with  a
               closing  a closing / and then an offset +n or
               -n.

               To include the  character  /  in  the  search
               string,  you  must escape it with a preceding
               \.  A ^  at  the  beginning  of  the  pattern
               forces the match to occur at the beginning of
               a line only; this speeds the search.  A $  at
               the  end  of  the pattern forces the match to
               occur at  the  end  of  a  line  only.   More
               extended  pattern  matching is available, see
               section 7.4; unless you set nomagic  in  your
               .exrc file you will have to preceed the char-
               acters . [ * and ~ in the search pattern with
               a  \ to get them to work as you would naively
               expect (1.5, 2,2, 6.1, 7.2, 7.4).

0              Moves to the first character on  the  current
               line.   Also  used, in forming numbers, after
               an initial 1-9.


:              A prefix to a set of commands  for  file  and
               option  manipulation  and escapes to the sys-
               tem.  Input is given on the bottom  line  and
               terminated  with  an CR, and the command then
               executed.  You can return to where  you  were
               by  hitting  DEL or RUB if you hit : acciden-
               tally (see primarily 6.2 and 7.3).

;              Repeats the last single character find  which
               used  f F t or T.  A count iterates the basic
               scan (4.1).

<              An  operator  which  shifts  lines  left  one
               shiftwidth,  normally  8  spaces.   Like  all
               operators, affects lines when repeated, as in
               <<.   Counts  are passed through to the basic
               object, thus 3<<  shifts  three  lines  (6.6,
               7.2).

=              Reindents line for LISP, as though they  were
               typed in with lisp and autoindent set (6.8).

>              An operator  which  shifts  lines  right  one
               shiftwidth, normally 8 spaces.  Affects lines
               when repeated as in >>.   Counts  repeat  the
               basic object (6.6, 7.2).

?              Scans backwards, the opposite of /.  See  the
               /  description  above for details on scanning
               (2.2, 6.1, 7.4).

@              A macro character (6.9).   If  this  is  your
               kill  character,  you must escape it with a \
               to type it in during input mode, as  it  nor-
               mally  backs over the input you have given on
               the current line (3.1, 3.4, 7.5).

A              Appends at the end of line, a synonym for  $a
               (7.2).

B              Backs up a word, where words are composed  of
               non-blank  sequences,  placing  the cursor at
               the beginning of the word.  A  count  repeats
               the effect (2.4).

C              Changes the rest of the text on  the  current
               line; a synonym for c$.

D              Deletes the rest of the text on  the  current
               line; a synonym for d$.

               count repeats the effect.

F              Finds a single following character, backwards
               in  the  current  line.  A count repeats this
               search that many times (4.1).

G              Goes to the line number  given  as  preceding
               argument,  or  the  end  of  the  file  if no
               preceding count  is  given.   The  screen  is
               redrawn  with  the  new  current  line in the
               center if necessary (7.2).

H              Home arrow.  Homes the cursor to the top line
               on the screen.  If a count is given, then the
               cursor is moved to the count'th line  on  the
               screen.   In  any case the cursor is moved to
               the first non-white character  on  the  line.
               If  used  as  the target of an operator, full
               lines are affected (2.3, 3.2).

I              Inserts at the beginning of a line; a synonym
               for ^i.

J              Joins together lines,  supplying  appropriate
               white  space:  one  space  between words, two
               spaces after a ., and no spaces at all if the
               first  character  of the joined on line is ).
               A count causes that many lines to  be  joined
               rather than the default two (6.5, 7.1f).

K              Unused.

L              Moves the cursor to the first non-white char-
               acter of the last line on the screen.  With a
               count, to the first non-white of the count'th
               line from the bottom.  Operators affect whole
               lines when used with L (2.3).

M              Moves the cursor to the middle  line  on  the
               screen,  at  the  first non-white position on
               the line (2.3).

N              Scans for the next match of the last  pattern
               given  to  /  or ?, but in the reverse direc-
               tion; this is the reverse of n.

O              Opens a new line above the current  line  and
               inputs  text there up to an ESC.  A count can
               be used on dumb terminals to specify a number
               of  lines  to  be  opened;  this is generally
               obsolete, as the slowopen option works better
               (3.1).
               the  cursor.   The  text  goes  back as whole
               lines above the cursor if it was  deleted  as
               whole  lines.  Otherwise the text is inserted
               between the characters before and at the cur-
               sor.   May  be  preceded  by  a  named buffer
               specification "x to retrieve the contents  of
               the   buffer;  buffers  1-9  contain  deleted
               material, buffers a-z are available for  gen-
               eral use (6.3).

Q              Quits from vi to ex command  mode.   In  this
               mode,  whole lines form commands, ending with
               a RETURN.  You can give all the  :  commands;
               the editor supplies the : as a prompt (7.7).

R              Replaces characters on the screen with  char-
               acters  you  type  (overlay  fashion).   Ter-
               minates with an ESC.

S              Changes whole lines, a  synonym  for  cc.   A
               count  substitutes  for that many lines.  The
               lines are saved in the numeric  buffers,  and
               erased  on the screen before the substitution
               begins.

T              Takes a single following  character,  locates
               the   character  before  the  cursor  in  the
               current line,  and  places  the  cursor  just
               after  that  character.   A count repeats the
               effect.  Most useful with operators such as d
               (4.1).

U              Restores the current line to its state before
               you started changing it (3.5).

V              Unused.

W              Moves forward to the beginning of a  word  in
               the  current line, where words are defined as
               sequences of blank/non-blank  characters.   A
               count repeats the effect (2.4).

X              Deletes the character before the  cursor.   A
               count repeats the effect, but only characters
               on the current line are deleted.

Y              Yanks a copy of the  current  line  into  the
               unnamed  buffer,  to be put back by a later p
               or P; a very useful synonym for yy.  A  count
               yanks  that many lines.  May be preceded by a
               buffer name  to  put  lines  in  that  buffer
               (7.4).
               changes have been made, the buffer is written
               out to the current  file.   Then  the  editor
               quits.

[[             Backs up to the previous section boundary.  A
               section  begins at each macro in the sections
               option, normally a `.NH' or `.SH' and also at
               lines  which  which start with a formfeed ^L.
               Lines beginning with {  also  stop  [[;  this
               makes  it  useful  for  looking  backwards, a
               function at a time, in C  programs.   If  the
               option  lisp  is  set, stops at each ( at the
               beginning of a line, and is thus  useful  for
               moving   backwards  at  the  top  level  LISP
               objects. (4.2, 6.1, 6.6, 7.2).

\              Unused.

]]             Forward to a section boundary, see [[  for  a
               definition (4.2, 6.1, 6.6, 7.2).


^ Moves to the first non-white position on the

               current line (4.4).

_              Unused.

`              When followed by a ` returns to the  previous
               context.   The  previous context is set when-
               ever the current line  is  moved  in  a  non-
               relative way.  When followed by a letter a-z,
               returns to the position which was marked with
               this letter with a m command.  When used with
               an operator such as d,  the  operation  takes
               place  from  the  exact  marked  place to the
               current position within the line; if you  use
               ',  the  operation  takes place over complete
               lines (2.2, 5.3).

a              Appends arbitrary text after the current cur-
               sor  position;  the  insert can continue onto
               multiple lines by  using  RETURN  within  the
               insert.   A count causes the inserted text to
               be replicated, but only if the inserted  text
               is all on one line.  The insertion terminates
               with an ESC (3.1, 7.2).

b              Backs up to the beginning of a  word  in  the
               current  line.   A  word  is  a  sequence  of
               alphanumerics, or a sequence of special char-
               acters.  A count repeats the effect (2.4).

c              An  operator  which  changes  the   following
               single  line  is  affected, the text which is
               changed away is saved in  the  numeric  named
               buffers.  If only part of the current line is
               affected,  then  the  last  character  to  be
               changed  away  is  marked  with a $.  A count
               causes that many objects to be affected, thus
               both  3c)  and c3) change the following three
               sentences (7.4).

d              An  operator  which  deletes  the   following
               object.   If  more  than  part  of  a line is
               affected, the text is saved  in  the  numeric
               buffers.  A count causes that many objects to
               be affected; thus 3dw  is  the  same  as  d3w
               (3.3, 3.4, 4.1, 7.4).

e              Advances to the end of the next word, defined
               as  for  b and w.  A count repeats the effect
               (2.4, 3.1).

f              Finds the first instance of the next  charac-
               ter following the cursor on the current line.
               A count repeats the find (4.1).

g              Unused.

               Arrow keys h, j, k, l, and H.

h              Left arrow.  Moves the cursor  one  character
               to  the  left.   Like  the  other arrow keys,
               either h, the left arrow key, or one  of  the
               synonyms  (^H)  has  the  same effect.  On v2
               editors, arrow keys on certain kinds of  ter-
               minals  (those  which  send escape sequences,
               such as vt52, c100, or hp) cannot be used.  A
               count repeats the effect (3.1, 7.5).

i              Inserts text  before  the  cursor,  otherwise
               like a (7.2).

j              Down arrow.  Moves the cursor one  line  down
               in the same column.  If the position does not
               exist, vi comes as close as possible  to  the
               same  column.  Synonyms include ^J (linefeed)
               and ^N.

k              Up arrow.  Moves the cursor one line up.   ^P
               is a synonym.

l              Right arrow.  Moves the cursor one  character
               to the right.  SPACE is a synonym.

               next character a-z.  Return to this  position
               or use with an operator using ` or ' (5.3).

n              Repeats the last /  or  ?  scanning  commands
               (2.2).

o              Opens new lines below the current line;  oth-
               erwise like O (3.1).

p              Puts text after/below the  cursor;  otherwise
               like P (6.3).

q              Unused.

r              Replaces the single character at  the  cursor
               with  a  single  character you type.  The new
               character may be a RETURN; this is the  easi-
               est  way  to  split  lines.  A count replaces
               each of the following count  characters  with
               the single character given; see R above which
               is the more usually  useful  iteration  of  r
               (3.2).

s              Changes the single character under the cursor
               to the text which follows up to an ESC; given
               a  count,  that  many  characters  from   the
               current line are changed.  The last character
               to be changed is marked with $ as in c (3.2).

t              Advances the cursor upto the character before
               the  next  character typed.  Most useful with
               operators such as d and c to delete the char-
               acters  up to a following character.  You can
               use . to delete more if this  doesn't  delete
               enough the first time (4.1).

u              Undoes the last change made  to  the  current
               buffer.   If repeated, will alternate between
               these two states, thus is  its  own  inverse.
               When used after an insert which inserted text
               on more than one line, the lines are saved in
               the numeric named buffers (3.5).

v              Unused.

w              Advances to the beginning of the  next  word,
               as defined by b (2.4).

x              Deletes the single character under  the  cur-
               sor.   With a count deletes deletes that many
               characters forward from the cursor  position,
               but only on the current line (6.5).
               the unnamed temporary buffer.  If preceded by
               a named buffer specification, "x, the text is
               placed  in  that  buffer  also.   Text can be
               recovered by a later p or P (7.4).

z              Redraws the  screen  with  the  current  line
               placed  as specified by the following charac-
               ter: RETURN specifies the top of the  screen,
               . the center of the screen, and - at the bot-
               tom of the screen.   A  count  may  be  given
               after  the z and before the following charac-
               ter to specify the new screen  size  for  the
               redraw.   A  count  before  the  z  gives the
               number of the line to place in the center  of
               the  screen  instead  of  the default current
               line. (5.4)

{              Retreats to the beginning of the beginning of
               the  preceding paragraph.  A paragraph begins
               at each macro in the paragraphs option,  nor-
               mally  `.IP',  `.LP', `.PP', `.QP' and `.bp'.
               A paragraph also begins  after  a  completely
               empty line, and at each section boundary (see
               [[ above) (4.2, 6.8, 7.6).

|              Places the cursor on  the  character  in  the
               column specified by the count (7.1, 7.2).

}              Advances to the beginning of the  next  para-
               graph.  See { for the definition of paragraph
               (4.2, 6.8, 7.6).

~              Unused.

^? (DEL)       Interrupts the editor, returning it  to  com-
               mand accepting state (1.5, 7.5)





































































Man(1) output converted with man2html