Vi Reference Card Yanking text Regular expressions Like deletion, almost all yank commands are performed by any single character except newline . () typing y followed by a motion. For example y$ yanks to zero or repeats * Modes the end of line. Two other yank commands are: any character in set [...] Vi has two modes: insertion , and command mode. any character not in set [^ ...] line yy The editor begins in command mode, where cursor move- beginning, end of line ^ , $ line :y ment and text deletion and pasting occur. Insertion mode 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!). commands execute The change command is a deletion command that leaves as soon as you them except for “colon” commands the editor in insert mode. It is performed by typing fol- Counts 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 , 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 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 lines n-m :n ,m next word, blank delimited word , W command, for example "ap. beginning of word, of blank delimited word b , B current line :. 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 goto marker c ‘c file (current file if no name given) :w 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 , middle, bottom of screen H,M,L read file after line :r file Search for 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 Replace 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 ranges or the :g command (below). 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 2002-2004 Donald J. Bindner – licensed under the terms of the GNU Free Documentation License version 1.1 or later.