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...

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

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

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

       The vi (visual) utility 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 com-
       mands 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.

       The following options are supporrted:

   Invocation Options
       The following invocation	options	are interpreted	by vi (previously doc-
       umented options are discussed under NOTES):

       - | -s		       Suppresses  all interactive user	feedback. This
			       is useful when processing editor	scripts.

       -C		       Encryption option. Same as the -x  option,  ex-
			       cept that vi simulates 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		       Sets up for editing LISP	programs.

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

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

       -R		       Readonly	 mode.	The readonly flag is set, pre-
			       venting accidental overwriting of the file.

       -S		       This option is used in conjunction with the  -t
			       tag  option  to	tell vi	that the tags file can
			       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. Creation of tags files normally pro-
			       duces  sorted tags files. See ctags(1) for more
			       information on tags files.

       -t tag		       Edits the file containing tag and position  the
			       editor  at  its	definition.  It	is an error to
			       specify more than one -t	option.

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

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

       -wn		       Sets the	default	window size to n. This is use-
			       ful when	using the editor  over	a  slow	 speed

       -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
			       command	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 is not en-
			       crypted.	This is	a good way to decrypt  a  file
			       erroneously  encrypted  with a mistyped encryp-
			       tion key, such as a backspace or	undo key.

       +command	| -c command   Begins editing by executing the specified  edi-
			       tor  command  (usually  a search	or positioning

   /usr/xpg4/bin/vi and	/usr/xpg6/bin/vi
       If both the -t tag and the -c command options are given,	the -t tag op-
       tionis processed	first. That is,	the file containing tag	is selected by
       -t and then the command is executed.

       The following operands are supported:

       filename	       A file to be edited.

       The vi command modes are	summarized in this section.

   vi Modes
       Command	       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 can then be entered. Input mode is  nor-
		       mally  terminated  with	the  ESC character, or,	abnor-
		       mally, 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

       itextESC	       insert text

       cwnewESC	       change word to new

       easESC	       pluralize word (end of word; append s; escape from  in-
		       put 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

       /textCR	       search for text

       ^U ^D	       scroll up or down

       :cmdCR	       any ex or ed command

   Counts Before vi Commands
       Numbers can 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

       :!cmdCR	       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) can  be
       typed, preceded by a colon and followed by a carriage return.

   Positioning Within a	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 de-
		       fault), 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

       /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	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

       /pat/z-CR       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	       move cursor to mark x

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

   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 +

       down-arrow      next line, same column
       or j

       up-arrow	       previous	line, same column
       or k

   Character Positioning
       ^	       first non-white space character

       0	       beginning of line

       $	       end of line

       l or ->	       forward

       h or <-	       backward

       ^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

       Control-C       interrupt, suspends insert mode

       ^D	       backtab one character; reset left margin	of autoindent

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

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

       ^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

       RtextESC	       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 ex-
       ample 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

       "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  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:	LANG,  LC_ALL,	LC_COLLATE,  LC_CTYPE,

       COLUMNS	       Override	the system-selected horizontal screen size.

       EXINIT	       Determine  a  list  of ex commands that are executed on
		       editor start-up,	before reading	the  first  file.  The
		       list  can  contain multiple commands by separating them
		       using a vertical-line (|) character.

       LINES	       Override	the system-selected vertical screen size, used
		       as  the number of lines in a screenful and the vertical
		       screen size in visual mode.

       /var/tmp			       default directory where temporary  work
				       files are placed; it can	be changed us-
				       ing the directory option	(see the ex(1)

       /usr/share/lib/terminfo/?/*     compiled	terminal description database

       /usr/lib/.COREterm/?/*	       subset of compiled terminal description

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

   /usr/bin/vi,	/usr/bin/view, /usr/bin/vedit
       |      ATTRIBUTE	TYPE	     |	    ATTRIBUTE VALUE	   |
       |Availability		     |SUNWcsu			   |
       |CSI			     |Not enabled		   |

   /usr/xpg4/bin/vi, /usr/xpg4/bin/view, /usr/xpg4/bin/vedit
       |      ATTRIBUTE	TYPE	     |	    ATTRIBUTE VALUE	   |
       |Availability		     |SUNWxcu4			   |
       |CSI			     |Enabled			   |
       |Interface Stability	     |Standard			   |

   /usr/xpg6/bin/vi, /usr/xpg6/bin/view, /usr/xpg6/bin/vedit
       |      ATTRIBUTE	TYPE	     |	    ATTRIBUTE VALUE	   |
       |Availability		     |SUNWxcu6			   |
       |CSI			     |Enabled			   |
       |Interface Stability	     |Standard			   |

       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 is not 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 EX-
       INIT can	be turned off in a local .exrc only if exrc is set  in	EXINIT
       or  $HOME/.exrc.	In order to be used, .exrc in $HOME or the current di-
       rectory must fulfill these conditions:

	 o  It must exist.

	 o  It must be owned by	the same userid	as  the	 real  userid  of  the
	    process, or	the process has	appropriate privileges.

	 o  It is not writable by anyone other than the	owner.

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

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

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

       Loading an alternate malloc() library using  the	 environment  variable
       LD_PRELOAD can cause problems for /usr/bin/vi.

SunOS 5.10			  11 Jun 2004				 vi(1)


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

home | help