##motions motion | description ------------- | ------------- h | Count characters left l | Count characters right ^ | To the first character of the line $ | To the last character of the line f<char> | To the counth character occurrence to the right. F<char> to the counth character occurrence to the left t<char> | To 1 character just before the counth character occurrence to the right T<char> | To 1 character just before the counth character occurrence to the left w | Count words forward W | Count words forward (different definition for what a word is, includes special characters and such) e | Count forward to the end of word b | Count words backward i<{<"'> | Inside something like inside brackets or parenthesis for example trigger | effect ------------- | ------------- c{motion} | Change d{motion} | Delete y{motion} | Yank into register g~{motion}| Toggle case gu{motion}| Make lowercase gU{motion}| Make uppercase >{motion} | Shift right <{motion} | Shift left ={motion} | Auto-indent ##buffer management command | description ------------- | ------------- <C-\^> or <C-6> | Switch to the buffer you just left ##split windows command | description ------------- | ------------- <C-w>s or :sp[lit] <file>| Split file horizontally. <C-w>v or :vsp[lit] <file>| Split file vertically <C-w>w | cycle between open windows <C-w>h | focus the window to the left <C-w>j | focus the window below <C-w>k | focus the window above <C-w>l | focus the window to the right :cl[ose] <C-w>c | close the active window :on[ly] <C-w>o | keep only the active window, closing all others ##spelling command | description ------------- | ------------- ]s | Jump to next spelling error [s | Jump to previous spelling error z= | Suggest corrections for current word zg | Add the current word to spell file zw | Remove the current word from spell file ##code folding command | description ------------- | ------------- zf{motion} | folds code when "foldmethod" set to manual or "marker" za| toggle fold at cursor zo| opens fold at cursor zc| close fold at cursor zR| open all zM| close all ##search and replace command | description ------------- | ------------- :args \*\*/\*.txt | Multi-file Step 1) populate the argument list with the files you want to search :argdo %s/search/replace/gc | Mult-file Step 2) replace all occurrences of search with replace but prompt before doing so * |search for the word under the cursor ##jumps command | description ------------- | ------------- :jumps | display the jump list <C-o> |jump backwards through the jump list <C-i> |jump forwards through the jump list :changes | display the change list g; |jump backwards through the changes list g, |jump forwards through the changes list gf |jump to the file name under the cursor ##changes command | description ------------- | ------------- :changes | display the change list g; |jump backwards through the changes list g, |jump forwards through the changes list gf |jump to the file name under the cursor ##marks command | description ------------- | ------------- :marks | display the marks list m<upper case> |set a file bookmark m<lower case> |set a buffer bookmark '<character> |jump to the mark ''|jump to the line in the current buffer where jumped from :delmarks <character>|delete specified mark :delmarks a-d|delete marks a through d :delmarks a,b,x,y|delete only marks a,b,x and y :delmarks!|delete all lower case marks ##registers command | description ------------- | ------------- :registers | display the register list "<lower case register>{motion} |overwrite or use contents of register "<upper case register>{motion} |append or use contents of register 0|populated with last yanked text ##macros command | description ------------- | ------------- q{register} |start recording and store it in the specified register q|stop recording {count}@{register}|execute specified macro count times ##ctags command | description ------------- | ------------- :tags |display the tags stack <C-]> | goto definition <C-t> | goto previous :ta<method> | takes you to the method definition where method definition could be a regex that produces a list :tn: | goes to next in list :tp | goes to previous in list :tf | goes to first in list :tl | goes to last in list ##quickfix window command | description ------------- | ------------- :copen | Open the quickfix window :ccl | Close it :cw | Open it if there are "errors", close it otherwise (some people prefer this) :cn | Go to the next error in the window :cnf | Go to the first error in the next file :cc{num} | Go to the error by number ##Navigation key | move to ------------- | ------------- % |End of construct [[ |Backwards to the beginning of the current function. ][ |Forwards to the beginning of the current function. ]} |Beginning of the current block. [{ |End of the current block. }[ |Beginning of the current comment block. }] |End of the current comment block. gd |First usage of the current variable name. (Mnemonic: go to definition). gD |Go to the first global usage of the current variable name. gg |beginning of file G |end of file ##Addon References ###ctags command | effect ------------- | ------------- :!ctags -R |jump to first tag that matches word under the cursor <C-]> | Prompt user to select from multiple matches for the word under the cursor. g<C-]> | present a list of choices if there is more than a single tag to jump to <C-t> | like the back button for tag history :tag <keyword> | jump to first tag that matches word under the cursor :tjump <keyword> | Prompt user to select from multiple matches for the word under the cursor. :pop or <C-t> | Prompt user to select from multiple matches for the word under the cursor. :tselect | Prompt user to choose an item from the tag matchlist ###tcomment command | description ------------- | ------------- gc{motion} | Toggle comments (for small comments within one line the &filetype_inline style will be used, if defined) gcc | Toggle comment for the current line gC{motion} | Comment region gCc | Comment the current line <C- _ ><C- _ > | :TComment <C- _ >b | :TCommentBlock ###vim-rails command | description ------------- | ------------- :A | Alternate :R | Related :Rmodel | Model :Rview | View :Rcontroller | Controller :help rails-navigation | Help on this plugin. ###vim-surround command | description ------------- | ------------- cs<current><new> | change old delimeter to new ds | remove delimeters ysiw<delimiter> | wrap current word S<delimiter> |while in visual mode S= | in visual mode, rails ERB tag (requires vim-rails) S- | in visual mode, rails ERB tag (requires vim-rails) S# | in visual mode, rails ERB tag (requires vim-rails) <C-s>= | rails ERB tag (requires vim-rails) <C-s>- | rails ERB tag (requires vim-rails) <C-s># | rails ERB tag (requires vim-rails) ##miscellaneous command | description ------------- | ------------- v | enable characterwise Visual mode V | enable linewise Visual mode <C-v>| enable blockwise Visual mode gv | reselect the last visual selection o | go to other end of highlighted text "+p | paste from system clipboard :0,$d | delete every line in a file <C-a> | increment number <C-x> | decrement number vit | select contents inside of an HTML tag :map|List all currently define mappings :verbose map|Display where mapping was defined g/{pattern}/d|Delete every line matching pattern. v/{pattern}/d|Delete every line _not_ matching pattern.