Command | Description |
---|---|
vi filename | Edit filename |
vi -r filename | Edit last version of filename after crash |
vi + n filename | Edit filename at end of file |
vi + filename | Edit filename at end of file |
vi +/str filename | Edit filename at first occurance of str |
Command | Description |
---|---|
:w | Save |
:x or :wq | Save & Exit |
:q | Exit if no changes made |
:q! | Exit & discard any changes |
Command | Description |
---|---|
h or ← | Cursor left |
j or ↓ | Cursor down |
k or ↑ | Cursor up |
l or → | Cursor right |
w | Next word |
W | Next blank delimited word |
b | Start of word |
B | Start of blank delimited word |
e | End of word |
W | End of blank delimited word |
( | Back a sentence |
) | Forward a sentence |
{ | Back a paragraph |
} | Forward a paragraph |
0 | Beggining of line |
$ | End of line |
1G | Start of file |
G | End of file |
:n | nth line of file |
f< char > | Forward to char |
F< char > | Back to char |
H | Top of screen |
M | Middle of screen |
L | Bottom of screen |
% | Matching bracket |
gg | Start of document |
Command | Description |
---|---|
i | Insert before cursor |
a | Append after cursor |
I | Insert before line |
A | Append after line |
o | Add new line after current line |
O | Add new line before current line |
r | Overwrite one character |
R | Overwrite many characters |
:r file | Reads file and inserts it after this line |
p | Put after the position or line |
P | Put before the position or line |
C | Rewrite the whole line |
Command | Description |
---|---|
v | Start visual mode, mark lines, then do command (such as y-yank) |
V | Start Linewise visual mode |
o | Move to other end of marked area |
ctrl + v | Start visual block mode |
O | Move to Other corner of block |
aw | Mark a word |
ab | A () block (with braces) |
aB | A {} block (with brackets) |
ib | Inner () block |
iB | Inner {} block |
esc | Exit visual mode |
Command | Description |
---|---|
> | Shift right |
< | Shift left |
y | Yank (copy) marked text |
d | Delete marked text |
~ | Switch case |
Command | Description |
---|---|
yy | yank (copy) a line |
2yy | yank 2 lines |
yw | yank word |
y$ | yank to end of line |
p | put (paste) the clipboard after cursor |
P | put (paste) before cursor |
dd | delete (cut) a line |
dw | delete (cut) the current word |
x | delete (cut) current character |
Command | Description |
---|---|
x | Delete character to right of cursor |
X | Delete character to left of cursor |
D | Delete the rest of line |
dd or :d | Delete current line |
ndw | Deletes the next n words |
ndb | Deletes the previous n words |
ndd | Deletes n lines starting with current |
:x,yd | Delete lines x through y |
:r < file > | Reads file and inserts it after this line |
d{nav_cmd} | Overwrite many characters |
Command | Description |
---|---|
/string | Search forward for string |
?string | Search backwards for string |
n | Go to next match |
N | Go to previous match |
:set ic | Ignore case while searching |
:set noic | Case-sensitive searching |
:set nu | Turn on line numbers |
:x,yg/str | Search for str from line x to line y |
:g/str/cmd | Run cmd on lines containing str |
* | Search for next instance of current word |
# | Search for last instance of current word |
:%s/old/new/g | Replace all old with new throughout file |
:%s/old/new/gc | Replace all old with new throughout file with confirmations |
Command | Description |
---|---|
:e filename | Edit a file in a new buffer |
:bnext (or :bn) | Go to next buffer |
:bprev (of :bp) | Go to previous buffer |
:bd | Delete a buffer (close a file) |
:sp filename | Open a file in a new buffer and split window |
ctrl + ws | Split windows |
ctrl + ww | Switch between windows |
ctrl + wq | Quit a window |
ctrl + wv | Split windows vertically |
Command | Description |
---|---|
u | Undo last change |
J | Join lines |
nJ | Join next n lines |
. | Repeat last command |
U | Undo all changes to line |
ctrl + c | Escape insert mode |