


      VI(1)			  (bsd 4.2)			  VI(1)



      NAME
	   vi -	screen-oriented	(visual) display editor	based on ex

      SYNTAX
	   vi [	-t tag ] [ -r file ] [ -l ] [ -wn ] [ -x ] [ -R	]
	   [ +command ]	 name ...

	   view	[ -t tag ] [ -r	file ] [ -l ] [	-wn ] [	-x ] [ -R ]
	   [ +command ]	 name ...


      DESCRIPTION
	   Vi (visual) is a full screen-oriented text editor.  Ex(1)
	   editing commands are	a subset of vi and are available for
	   use within vi.

	   With	vi, changes to the file	are reflected on the terminal
	   screen.  The	cursor on the screen indicates the position in
	   the file where editing commands will	be executed.

	   Refer to the	material on Ex and Vi in the ROS Text Editing
	   Guide  for full details on the use of vi.

      INVOCATION
	   The following invocation options are	interpreted by vi:

	   -t tag	  Edit the file	containing the tag and position
			  the cursor at	its location.

	   -rfile	  Recover file after an	editor or system crash.
			  If file is not specified, a list of all saved
			  files	will be	printed.

	   -l		  LISP mode; indents appropriately for lisp
			  code,	the () {} [[ and ]] commands in	vi and
			  open are modified to have meaning for	lisp .

	   -wn		  Set the default window size to n. This is
			  useful when using the	editor over a slow
			  speed	line.

	   -x		  Encryption mode; vi prompts for a keyword to
			  allow	creating or editing an encrypted file.
			  See crypt(1).

	   -R		  Read-only mode; to protect from accidental
			  overwriting of the file, a modified version
			  of the file cannot be	saved.

	   +command	  The specified	ex command is interpreted
			  before editing begins.




      Page 1					      (73 A2 02MT REV1)






      VI(1)			  (bsd 4.2)			  VI(1)



	   The name argument indicates files to	be edited.

	   View	is the same as vi -R; a	modified version of the	file
	   cannot be saved.

      VI MODES
	   Command	  Normal and initial mode.  Other modes	return
			  to command mode upon completion.  Press ESC
			  to cancel a command that has been partially
			  entered.

	   Input	  Entered by a i A I o O c C s S R.  Arbitrary
			  text may then	be entered. Input mode is
			  normally terminated with ESC character, or
			  abnormally with interrupt.

	   Last	line	  Reading input	for : /	? or !;	terminate with
			  CR to	execute, interrupt to cancel.

      COMMAND SUMMARY
	 Sample	commands
	   <- v	^ ->	     arrow keys	move the cursor
	   h j k l	     same as "left","down","up",and "right" arrows
	   itextESC	     insert text abc
	   cwnewESC	     change word to new
	   easESC	     move to end of word, add an s
	   x		     delete a character
	   dw		     delete a word
	   dd		     delete a line
	   3dd		     delete 3 lines
	   u		     undo previous change
	   ZZ		     exit the editor, saving changes
	   :q![RET]	     quit the editor, discarding changes
	   /textCR	     search for	text
	   ^U ^D	     scroll up or down
	   :ex cmdCR	     any ex or ed command

	 Counts	before vi commands
	   Numbers may be typed	as a prefix to some commands.  They are
	   interpreted in one of these ways.
	   line/column number	z  G  |
	   scroll amount	^D  ^U
	   repeat effect	most of	the rest

	 Interrupting, Canceling
	    ESC	      end an i,	a, A, s, S, or R action; or cancel a command
	    ^?	      (delete or rubout) interrupts
	    ^L	      reprint screen if	^? scrambles it
	    ^R	      reprint screen if	^L is -> key

	 File Manipulation (press [RETURN] after each)
	    :w		  write	(save) cumulative changes to file



      Page 2					      (73 A2 02MT REV1)






      VI(1)			  (bsd 4.2)			  VI(1)



	    :q		  quit
	    :q!		  quit,	discard	changes
	    :e name	  edit file name
	    :e!		  reedit, discard changes
	    :e + name	  edit,	starting at end
	    :e +n	  edit starting	at line	n
	    :e #	  edit alternate file
			  synonym for :e #
	    :w name	  write	this file and call it name
	    :w!	name	  overwrite this file on file name
	    :sh		  run shell, then return to editor
	    :!cmd	  run cmd, then	return to editor
	    :n		  edit next file in arglist
	    :n args	  specify new arglist
	    ^G		  show current file name and cursor line number
	    :f		  show current file name and cursor line number
	    :ta	tag	  to tag file entry tag
	    ^]		  :ta, following word is tag

	   In general, any ex(1) or ed(1) command may be entered in the
	   form:  :command [RET].

	 Positioning within file
	    ^F		forward	screen
	    ^B		backward screen
	    ^D		scroll down half screen
	    ^U		scroll up half screen
	    G		go to specified	line (end default)
	    /pat	next line matching pat
	    ?pat	prev line matching pat
	    n		repeat last / or ?
	    N		reverse	last / or ?
	    /pat/+n	 nth line after	pat
	    ?pat?-n	 nth line before pat
	    ]]		next section/function
	    [[		previous section/function
	    (		beginning of sentence
	    )		end of sentence
	    {		beginning of paragraph
	    }		end of paragraph
	    %		find matching (	) { or }

	 Adjusting the screen
	    ^L		     clear and redraw
	    ^R		     retype, eliminate @ lines
	    z[RET]	     redraw, current at	window top
	    z-[RET]	     ... at bottom
	    z.[RET]	     ... at center
	    /pat/z-[RET]     pat line at bottom
	    zn.[RET]	     use n line	window
	    ^E		     scroll window down	1 line
	    ^Y		     scroll window up 1	line



      Page 3					      (73 A2 02MT REV1)






      VI(1)			  (bsd 4.2)			  VI(1)



	 Marking and returning
	    ``	    move cursor	to previous context
	    ''	    ...	at first non-white in line
	    mx	    mark current position with letter x
	    `x	    move cursor	to mark	x
	    'x	    ...	at first non-white in line

	 Line positioning
	    H	       top line	on screen
	    L	       last line on screen
	    M	       middle line on screen
	    +	       next line, at first non-white
	    -	       previous	line, at first non-white
	    [RET]      return, same as +
	    v or j     next line, same column
	    ^ or k     previous	line, same column

	 Character positioning
	    ^		first non white
	    0		beginning of line
	    $		end of line
	    h or ->	forward
	    l or <-	backwards
	    ^H		same as	<-
	    space	same as	->
	    fx		find x forward
	    Fx		f backward
	    tx		upto x forward
	    Tx		back upto x
	    ;		repeat last f F	t or T
	    ,		inverse	of ;
	    |		to specified column
	    %		find matching (	{ ) or }

	 Words,	sentences, paragraphs
	    w	    word forward
	    b	    back word
	    e	    end	of word
	    )	    to next sentence
	    }	    to next paragraph
	    (	    back sentence
	    {	    back paragraph
	    W	    blank delimited word
	    B	    back W
	    E	    to end of W

	 Commands for LISP Mode
	    )	    Forward s-expression
	    }	    ...	but do not stop	at atoms
	    (	    Back s-expression
	    {	    ...	but do not stop	at atoms




      Page 4					      (73 A2 02MT REV1)






      VI(1)			  (bsd 4.2)			  VI(1)



	 Corrections during insert
	    ^H	      erase last character
	    ^W	      erase last word
	    erase     your erase, same as ^H
	    kill      your kill, erase input this line
	    \	      quotes ^H, your erase and	kill
	    ESC	      ends insertion, back to command
	    ^?	      interrupt, terminates insert
	    ^D	      backtab over autoindent
	    ^^D	      kill autoindent, save for	next
	    0^D	      ... but at margin	next also
	    ^V	      quote non-printing character

	 Insert	and replace
	    a		 append	after cursor
	    i		 insert	before cursor
	    A		 append	at end of line
	    I		 insert	before first non-blank
	    o		 open line below
	    O		 open above
	    rx		 replace single	char with x
	    RtextESC	 replace characters

	 Operators
	   Operators are followed by a cursor motion, and affect all
	   text	that would have	been moved over.  For example, since w
	   moves over a	word, dw deletes the word that would be	moved
	   over.  Double the operator, e.g.  dd	to affect whole	lines.
	    d	    delete
	    c	    change
	    y	    yank lines to buffer
	    <	    left shift
	    >	    right shift
	    !	    filter through command
	    =	    indent for LISP

	 Miscellaneous Operations
	    C	    change rest	of line	(c$)
	    D	    delete rest	of line	(d$)
	    s	    substitute chars (cl)
	    S	    substitute lines (cc)
	    J	    join lines
	    x	    delete characters (dl)
	    X	    ...	before cursor (dh)
	    Y	    yank lines (yy)

	 Yank and Put
	   Put inserts the text	most recently deleted or yanked.
	   However, if a buffer	is named, the text in that buffer is
	   put instead.
	    p	    put	back text after	cursor
	    P	    put	before cursor



      Page 5					      (73 A2 02MT REV1)






      VI(1)			  (bsd 4.2)			  VI(1)



	    "xp	    put	from buffer x
	    "xy	    yank to buffer x
	    "xd	    delete into	buffer x

	 Undo, Redo, Retrieve
	    u	    undo last change
	    U	    restore current line
	    .	    repeat last	change
	    "dp	    retrieve d'th last delete

      SEE ALSO
	   ex (1)

	   the Vi and Ex material in ROS Text Editing Guide.

      CAVEATS AND BUGS
	   Software tabs using ^T work only immediately	after the
	   autoindent.

	   Left	and right shifts on intelligent	terminals do not make
	   use of insert and delete character operations in the
	   terminal.

































      Page 6					      (73 A2 02MT REV1)



