A lot of reason of why i love this app. Simplicity is main reason. A lot of 'hidden' shortcut make you geek-alike. Hehe...
Here's most useful VIM shortcut. Yeah, i know sometimes is little bit difficult to remember it all. My advice is just remember what most you need and use frequently. ;)
source: http://www.keyxl.com/aaa8263/290/VIM-keyboard-shortcuts.htm
Shortcut | Command | How useful(?) |
Cursor movement
VIM | ||
h | move left | + – |
j | move down | + – |
k | move up | + – |
l | move right | + – |
w | jump by start of words (punctuation considered words) | + – |
W | jump by words (spaces separate words) | + – |
e | jump to end of words (punctuation considered words) | + – |
E | jump to end of words (no punctuation) | + – |
b | jump backward by words (punctuation considered words) | + – |
B | jump backward by words (no punctuation) | + – |
0 | (zero) start of line | + – |
^ | first non-blank character of line | + – |
$ | end of line | + – |
G | Go To command (prefix with number | + – |
Note: | Prefix a cursor movement command with a number to repeat it. For example, 4j moves down 4 lines. | + – |
Insert Mode | Inserting/Appending text | + – |
i | start insert mode at cursor | + – |
I | insert at the beginning of the line | + – |
a | append after the cursor | + – |
A | append at the end of the line | + – |
o | open (append) blank line below current line (no need to press return) | + – |
O | open blank line above current line | + – |
ea | append at end of word | + – |
Esc | exit insert mode | + – |
Editing
VIM | |||
r | replace a single character (does not use insert mode) | + – | |
J | join line below to the current one | + – | |
cc | change (replace) an entire line | + – | |
cw | change (replace) to the end of word | + – | |
c$ | change (replace) to the end of line | + – | |
s | delete character at cursor and subsitute text | + – | |
S | delete line at cursor and substitute text (same as cc) | + – | |
xp | transpose two letters (delete and paste, technically) | + – | |
u | undo | + – | |
. | repeat last command | + – |
Marking text (visual mode)
VIM | |||
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 | + – |
Visual commands
VIM | |||
> | shift right | + – | |
< | shift left | + – | |
y | yank (copy) marked text | + – | |
d | delete marked text | + – | |
~ | switch case | + – |
Cut and Paste
VIM | |||
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 | + – |
Exiting
VIM | |||
:w | write (save) the file, but don't exit | + – | |
:wq | write (save) and quit | + – | |
:q | quit (fails if anything has changed) | + – | |
:q! | quit and throw away changes | + – |
Search/Replace
VIM | |||
/pattern | search for pattern | + – | |
?pattern | search backward for pattern | + – | |
n | repeat search in same direction | + – | |
N | repeat search in opposite direction | + – | |
:%s/old/new/g | replace all old with new throughout file | + – | |
:%s/old/new/gc | replace all old with new throughout file with confirmations | + – |
Working with multiple files
VIM | |||
: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 | + – |
No comments:
Post a Comment