100% found this document useful (6 votes)
3K views1 page

Vi Quick Reference

This document provides a quick reference to keyboard shortcuts and commands for movement, editing text, searching/replacing, and other functions in the vi text editor. It details shortcuts for navigating by character, line, screen and section as well as commands for entering, deleting, copying and pasting text, searching, replacing, and more. Common editing tasks like cutting/pasting and undoing are also summarized along with miscellaneous commands for indentation, joining lines, and showing status information.

Uploaded by

Sneetsher Crispy
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (6 votes)
3K views1 page

Vi Quick Reference

This document provides a quick reference to keyboard shortcuts and commands for movement, editing text, searching/replacing, and other functions in the vi text editor. It details shortcuts for navigating by character, line, screen and section as well as commands for entering, deleting, copying and pasting text, searching, replacing, and more. Common editing tasks like cutting/pasting and undoing are also summarized along with miscellaneous commands for indentation, joining lines, and showing status information.

Uploaded by

Sneetsher Crispy
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 1

Vi Quick Reference

http://www.sfu.ca/~yzhang/linux

MOVEMENT (lines - ends at <CR>; sentence - ends at puncuation-space; section - ends at <EOF>)

By Character Marking Position on Screen


mp mark current position as p (a..z)
k `p move to mark position p
'p move to first non-whitespace on line w/mark p
h l hjkl
Miscellaneous Movement
j fm forward to character m
Fm backward to character m
By Line tm forward to character before m
nG to line n Tm backward to character after m
0, $ first, last position on line w move to next word (stops at puncuation)
^ or _ first non-whitespace char on line W move to next word (skips punctuation)
+, - first character on next, prev line b move to previous word (stops at punctuation)
B move to previous word (skips punctuation)
By Screen e end of word (puncuation not part of word)
^F, ^B scroll foward, back one full screen E end of word (punctuation part of word)
^D, ^U scroll forward, back half a screen ), ( next, previous sentence
^E, ^Y show one more line at bottom, top ]], [[ next, previous section
L go to the bottom of the screen }, { next, previous paragraph

z↵ position line with cursor at top % goto matching parenthesis () {} []
z. position line with cursor at middle
z- position line with cursor at

EDITING TEXT
Entering Text Searching and Replacing
a append after cursor /w search forward for w
A or $a append at end of line ?w search backward for w
i insert before cursor /w/+n search forward for w and move down n lines
I or _i insert at beginning of line n repeat search (forward)
o open line below cursor N repeat search (backward)
O open line above cursor
cm change text (m is movement) :s/old/new replace next occurence of old with new
:s/old/new/g replace all occurences on the line
Cut, Copy, Paste (Working w/Buffers) :x,ys/old/new/g replace all ocurrences from line x to y
dm delete (m is movement) :%s/old/new/g replace all occurrences in file
dd delete line :%s/old/new/gc same as above, with confirmation
D or d$ delete to end of line
x delete char under cursor Miscellaneous
X delete char before cursor n>m indent n lines (m is movement)
ym yank to buffer (m is movement) n<m un-indent left n lines (m is movement)
yy or Y yank to buffer current line . repeat last command
p paste from buffer after cursor U undo changes on current line
P paste from buffer before cursor u undo last command
“bdd cut line into named buffer b (a..z) J join end of line with next line (at <cr>)
“bp paste from named buffer b :rf insert text from external file f
^G show status

You might also like