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

       -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 op-
	     tion. If an empty encryption  key is entered (that	is, if the re-
	     turn key is pressed right after the prompt), the file will	not be
	     encrypted.	This is	a good way to decrypt a	file  erroneously  en-
	     crypted  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 op-
       tion will be processed first. That is, the file containing tag  is  se-
       lected 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 re-
	     turn. 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 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

	     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 en-
       try) can	affect programs	such as	vi that	expect the entry to be present
       and  correct. In	particular, removing the "dumb"	terminal may 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.

       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