Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
vi(1)				 User Commands				 vi(1)

       vi, view, vedit - screen-oriented (visual) display editor based on ex

       /usr/bin/vi [ -|	-s] [-l] [-L] [-R] [ -r	[filename]] [-S] [-t tag] [-v]
       [-V] [-x] [-wn] [-C] [+command  | -c command]  filename...

       /usr/bin/view [ -| -s] [-l] [-L]	[-R] [ -r  [filename]]	[-S]  [-t tag]
       [-v] [-V] [-x] [-wn] [-C] [+command  | -c command]  filename...

       /usr/bin/vedit  [  -| -s] [-l] [-L] [-R]	[ -r [filename]] [-S] [-t tag]
       [-v] [-V] [-x] [-wn] [-C] [+command  | -c command]  filename...

       /usr/xpg4/bin/vi	[ -| -s] [-l] [-L] [-R]	[ -r [filename]] [-S] [-t tag]
       [-v] [-V] [-x] [-wn] [-C] [+command  | -c command]  filename...

       /usr/xpg4/bin/view  [  -|  -s] [-l] [-L]	[-R] [ -r [filename]] [-S] [-t
       tag] [-v] [-V] [-x] [-wn] [-C] [+command	 | -c command]	filename...

       /usr/xpg4/bin/vedit [ -|	-s] [-l] [-L] [-R] [ -r	[filename]]  [-S]  [-t
       tag] [-v] [-V] [-x] [-wn] [-C] [+command	 | -c command]	filename...

       vi  (visual)  is	 a display-oriented text editor	based on an underlying
       line editor ex. It is possible to use  the  command  mode  of  ex  from
       within  vi and to use the command mode of vi from within	ex. The	visual
       commands	are described on this manual page; how to  set	options	 (like
       automatically  numbering	 lines and automatically starting a new	output
       line when you type carriage return) and all ex line editor commands are
       described on the	ex(1) manual page.

       When  using  vi,	changes	you make to the	file are reflected in what you
       see on your terminal screen. The	position of the	cursor on  the	screen
       indicates the position within the file.

       The  view invocation is the same	as vi except that the readonly flag is

       The vedit invocation is intended	for beginners. It is the  same	as  vi
       except  that the	report flag is set to 1, the showmode and novice flags
       are set,	and magic is turned off. These	defaults  make	it  easier  to
       learn how to use	vi.

   Invocation Options
       The following invocation	options	are interpreted	by vi (previously doc-
       umented options are discussed in	 the  NOTES  section  of  this	manual

       - | -s
	     Suppress  all interactive user feedback. This is useful when pro-
	     cessing editor scripts.

       -C    Encryption	option;	same as	the -x option, except  that  vi	 simu-
	     lates the C command of ex.	The C command is like the X command of
	     ex, except	that  all  text	 read  in  is  assumed	to  have  been

       -l    Set up for	editing	LISP programs.

       -L    List  the	name  of all files saved as the	result of an editor or
	     system crash.

       -r filename
	     Edit filename after an editor or system crash. (Recovers the ver-
	     sion of filename that was in the buffer when the crash occurred.)

       -R    Readonly mode; the	readonly flag is  set,	preventing  accidental
	     overwriting of the	file.

       -S    This option is used in conjunction	with the -t tag	option to tell
	     vi	that the tags file may not be sorted and that, if  the	binary
	     search (which relies on a sorted tags file) for tag fails to find
	     it, the much slower linear	search should also be done. Since  the
	     linear  search  is	 slow, users of	large tags files should	ensure
	     that the tags files are sorted rather than	use  this  flag.  Cre-
	     ation  of	tags  files  normally  produces	sorted tags files. See
	     ctags(1) for more information on tags files.

       -t tag
	     Edit the file containing the tag, tag, and	position the editor at
	     its definition.

       -v    Start  up	in display editing state using vi. You can achieve the
	     same effect by simply typing the vi command itself.

       -V    Verbose. When ex commands are read	by means  of  standard	input,
	     the  input	 will  be echoed to standard error. This may be	useful
	     when processing ex	commands within	shell scripts.

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

       -x    Encryption	 option;  when	used, vi simulates the X command of ex
	     and prompts the user for a	key. This key is used to  encrypt  and
	     decrypt text using	the algorithm of the crypt command. The	X com-
	     mand makes	an educated guess to determine whether text read in is
	     encrypted	or  not.  The temporary	buffer file is encrypted also,
	     using a transformed version of  the  key  typed  in  for  the  -x
	     option.  If  an empty encryption  key is entered (that is,	if the
	     return key	is pressed right after the prompt), the	file will  not
	     be	 encrypted.  This  is a	good way to decrypt a file erroneously
	     encrypted with a mistyped encryption key, such as a backspace  or
	     undo key.

       +command	| -c  command
	     Begin  editing by executing the specified editor command (usually
	     a search or positioning command).

       If both the -t tag and the -c command options are  given,  the  -t  tag
       option  will  be	 processed  first. That	is, the	file containing	tag is
       selected	by -t and then the command is executed.

       The following operands are supported:

	     A file to be edited.

   vi Modes
	     Normal and	initial	mode. Other modes return to command mode  upon
	     completion. ESC (escape) is used to cancel	a partial command.

       Input Entered by	setting	any of the following options:

	     a A i I o O c C s S R

	Arbitrary  text	may then be entered. Input mode	is normally terminated
       with the	ESC character, or, abnormally, with an interrupt.

       Last line
	     Reading input for : / ? or	!.  Terminate  by  typing  a  carriage
	     return. An	interrupt cancels termination.

   Sample commands
       In  the	descriptions, CR stands	for carriage return and	ESC stands for
       the escape key.




	     arrow keys	move the cursor

       h j k l
	     same as arrow keys

	     insert text

	     change word to new

	     pluralize word (end of word; append s; escape from	input state)

       x     delete a character

       dw    delete a word

       dd    delete a line

       3dd   delete 3 lines

       u     undo previous change

       ZZ    exit vi, saving changes

       :q!CR quit, discarding changes

	     search for	text

       ^U ^D scroll up or down

	     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 insert	or incomplete command

       DEL   (delete or	rubout)	interrupts

   File	manipulation
       ZZ    if	file modified, write and exit; otherwise, exit

       :wCR  write back	changes

       :w!CR forced write, if permission originally not	valid

       :qCR  quit

       :q!CR quit, discard changes

       :e nameCR
	     edit file name

       :e!CR reedit, discard changes

       :e + nameCR
	     edit, starting at end

       :e +nCR
	     edit, starting at line n

       :e #CR
	     edit alternate file

       :e! #CR
	     edit alternate file, discard changes

       :w nameCR
	     write file	name

       :w! nameCR
	     overwrite file name

       :shCR run shell,	then return

	     run cmd, then return

       :nCR  edit next file in arglist

       :n argsCR
	     specify new arglist

       ^G    show current file and line

       :ta tagCR
	     position cursor to	tag

       In  general, any	ex or ed command (such as substitute or	global)	may be
       typed, preceded by a colon and followed by a carriage return.

   Positioning within file
       F     forward screen

       ^B    backward screen

       ^D    scroll down half screen

       ^U    scroll up half screen

       nG    go	to the beginning of the	specified line (end default), where  n
	     is	a line number

       /pat  next line matching	pat

       ?pat  previous line matching pat

       n     repeat last / or ?	command

       N     reverse last / or ? command

	     nth line after pat

	     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 window

       ^R    clear and redraw window if	^L is -> key

       zCR   redraw screen with	current	line at	top of window

       z-CR  redraw screen with	current	line at	bottom of window

       z.CR  redraw screen with	current	line at	center of window

	     move pat line to bottom of	window

       zn.CR use n-line	window

       ^E    scroll window down	one line

       ^Y    scroll window up one line

   Marking and returning
       ``    move cursor to previous context

       ''    move cursor to first non-white space in line

       mx    mark current position with	the ASCII lower-case letter x

       `x    move cursor to mark x

       'x    move cursor to first non-white space in line marked by x

   Line	positioning
       H     top line on screen

       L     last line on screen

       M     middle line on screen

       +     next line,	at first non-white space character

       -     previous line, at first non-white space character

       CR    return, same as +


       or j  next line,	same column


       or k  previous line, same column

   Character positioning
       ^     first non-white space character

       0     beginning of line

       $     end of line

       l or ->

       h or <-

       ^H    same as <-	(backspace)

       space same as ->	(space bar)

       fx    find next x

       Fx    find previous x

       tx    move to character following the next x

       Tx    move to character following the previous x

       ;     repeat last f, F, t, or T

       ,     repeat inverse of last f, F, t, or	T

       n|    move to column n

       %     find matching ( ) or { }

   Words, sentences, paragraphs
       w     forward a word

       b     back a word

       e     end of word

       )     to	next sentence

       }     to	next paragraph

       (     back a sentence

       {     back a paragraph

       W     forward a blank-delimited word

       B     back a blank-delimited word

       E     end of a blank-delimited word

   Corrections during insert
       ^H    erase last	character (backspace)

       ^W    erase last	word

       erase your erase	character, same	as ^H (backspace)

       kill  your kill character, erase	this line of input

       \     quotes your erase and kill	characters

       ESC	  ends insertion, back to command mode

	     interrupt,	suspends insert	mode

       ^D    backtab one character; reset left margin of autoindent

       ^^D   caret  (^)	 followed  by  control-d (^D); backtab to beginning of
	     line; do not reset	left margin of autoindent

       0^D   backtab to	beginning of line; reset left margin of	autoindent

       ^V    quote non-printable character

   Insert and replace
       a     append after cursor

       A     append at end of line

       i     insert before cursor

       I     insert before first non-blank

       o     open line below

       O     open line above

       rx    replace single character with x

	     replace characters

       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,  for
       example dd, to affect whole lines.

       d     delete

       c     change

       y     yank lines	to buffer

       <     left shift

       >     right shift

       !     filter through command

   Miscellaneous Operations
       C     change rest of line (c$)

       D     delete rest of line (d$)

       s     substitute	characters (cl)

       S     substitute	lines (cc)

       J     join lines

       x     delete characters (dl)

       X     delete characters 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 (using the ASCII	lower-case letters a - z), the text in
       that buffer is put instead.

       3yy   yank 3 lines

       3yl   yank 3 characters

       p     put back text after cursor

       P     put back text before cursor

       "xp   put from buffer x

	     yank to buffer x

	     delete into buffer	x

   Undo, Redo, Retrieve
       u     undo last change

       U     restore current line

       .     repeat last change

	     retrieve d'th last	delete

       See  largefile(5)  for  the  description	of the behavior	of vi and view
       when encountering files greater than or equal  to  2  Gbyte  (  2 **31

       See  environ(5) for descriptions	of the following environment variables
       that affect the execution of vi:	LC_CTYPE,  LC_TIME,  LC_MESSAGES,  and

	     default  directory	 where temporary work files are	placed;	it can
	     be	changed	using the directory option (see	the ex(1) command)

	     compiled terminal description database

	     subset of compiled	terminal description database

       See attributes(5) for descriptions of the following attributes:

       |      ATTRIBUTE	TYPE	     |	    ATTRIBUTE VALUE	   |
       |Availability		     |SUNWcsu			   |
       |CSI			     |Not enabled		   |

       |      ATTRIBUTE	TYPE	     |	    ATTRIBUTE VALUE	   |
       |Availability		     |SUNWxcu4			   |
       |CSI			     |Enabled			   |

       intro(1), ctags(1), ed(1), edit(1), ex(1),  attributes(5),  environ(5),
       largefile(5), standards(5)

       Solaris Advanced	User's Guide

       vi and ex were developed	by The University of California, Berkeley Cal-
       ifornia,	Computer Science Division, Department of Electrical  Engineer-
       ing and Computer	Science.

       Two options, although they continue to be supported, have been replaced
       in the documentation by options that follow the Command Syntax Standard
       (see  intro(1)).	An -r option that is not followed with an option-argu-
       ment has	been replaced by -L and	+command has been replaced by -c  com-

       The  message  file  too	large to recover with -r option, which is seen
       when a file is loaded, indicates	that the file can be edited and	 saved
       successfully,  but if the editing session is lost, recovery of the file
       with the	-r option will not be possible.

       The editing environment defaults	to certain configuration options. When
       an  editing  session is initiated, vi attempts to read the EXINIT envi-
       ronment variable. If it exists, the editor uses the values  defined  in
       EXINIT;	 otherwise   the  values  set  in  $HOME/.exrc	are  used.  If
       $HOME/.exrc does	not exist, the default values are used.

       To use a	copy of	.exrc located in  the  current	directory  other  than
       $HOME,  set  the	exrc option in EXINIT or $HOME/.exrc  .	Options	set in
       EXINIT can be turned off	in a local .exrc only if exrc is set in	EXINIT
       or $HOME/.exrc.

       Tampering    with    entries    in    /usr/share/lib/terminfo/?/*    or
       /usr/share/lib/terminfo/?/*  (for  example,  changing  or  removing  an
       entry)  can  affect  programs  such  as	vi that	expect the entry to be
       present and correct. In particular, removing the	 "dumb"	 terminal  may
       cause unexpected	problems.

       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.

       The standard Solaris version of vi will be replaced by the POSIX.2-con-
       forming version (see standards(5)) in the future. Scripts which use the
       ex family of addressing and features should use the /usr/xpg4/bin  ver-
       sion of these utilities.

SunOS 5.9			  18 Jun 1998				 vi(1)


Want to link to this manual page? Use this URL:

home | help