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