You are on page 1of 1

Vi Reference Card Yanking text Regular expressions

Like deletion, almost all yank commands are performed by any single character except newline . (dot)
typing y followed by a motion. For example y$ yanks to zero or more repeats *
Modes the end of line. Two other yank commands are: any character in set [...]
Vi has two modes: insertion mode, and command mode. any character not in set [^ ...]
The editor begins in command mode, where cursor move- line yy
beginning, end of line ^ , $
ment and text deletion and pasting occur. Insertion mode line :y
beginning, end of word \< , \>
begins upon entering an insertion or change command. grouping \(. . . \)
[ESC] returns the editor to command mode (where you can Changing text contents of n th grouping \n
quit, for example by typing :q!). Most commands execute The change command is a deletion command that leaves
as soon as you type them except for “colon” commands the editor in insert mode. It is performed by typing c fol-
which execute when you press the return key. lowed by a motion. For example cw changes a word. A few
Nearly every command may be preceded by a number that
other change commands are:
specifies how many times it is to be performed. For exam-
Quitting to end of line C ple 5dw will delete 5 words and 3fe will move the cursor
exit, saving changes :x line cc forward to the 3rd occurance of the letter e. Even inser-
quit (unless changes) :q tions may be repeated conveniently with this method, say
quit (force, even if unsaved) :q! Putting text to insert the same line 100 times.
put after position or after line p
Inserting text put before position or before line P Ranges
insert before cursor, before line i , I Ranges may precede most “colon” commands and cause
append after cursor, after line a , A Registers them to be executed on a line or lines. For example :3,7d
open new line after, line before o , O Named registers may be specified before any deletion, would delete lines 3−7. Ranges are commonly combined
replace one char, many chars r , R change, yank, or put command. The general prefix has with the :s command to perform a replacement on several
the form "c where c may be any lower case letter. For lines, as with :.,$s/pattern/string/g to make a replace-
Motion example, "adw deletes a word into register a. It may there- ment from the current line to the end of the file.
left, down, up, right h , j , k , l after be put back into the text with an appropriate put
next word, blank delimited word w , W lines n-m :n ,m
command, for example "ap. current line :.
beginning of word, of blank delimited word b , B
end of word, of blank delimited word e , E last line :$
Markers marker c :’c
sentence back, forward ( , ) Named markers may be set on any line of a file. Any lower
paragraph back, forward { , } all lines :%
case letter may be a marker name. Markers may also be all matching lines :g/pattern /
beginning, end of line 0 , $ used as the limits for ranges.
beginning, end of file 1G , G
line n n G or :n set marker c on this line mc Files
forward, back to char c fc , Fc goto marker c ‘c write file (current file if no name given) :w file
forward, back to before char c tc , Tc goto marker c first non-blank ’c append file (current file if no name given) :w >>file
top, middle, bottom of screen H , M , L read file after line :r file
Search for strings read program output :r !program
Deleting text search forward /string next file :n
Almost all deletion commands are performed by typing d search backward ?string previous file :prev
followed by a motion. For example dw deletes a word. A repeat search in same, reverse direction n , N edit new file :e file
few other deletions are: replace line with program output :.!program

character to right, left

x , X The search and replace function is accomplished with the Other
to end of line D :s command. It is commonly used in combination with toggle upper/lower case ~
line dd ranges or the :g command (below). join lines J
line :d repeat last text-changing command .
replace pattern with string :s/pattern /string /flags undo last change, all changes on line u , U
flags: all on each line, confirm each g , c
repeat last :s command &

c Donald J. Bindner – licensed under the terms of the GNU General Public License 2.0 or later.