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 |
command | description |
---|---|
<C-^> or <C-6> | Switch to the buffer you just left |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
command | description |
---|---|
q{register} | start recording and store it in the specified register |
q | stop recording |
{count}@{register} | execute specified macro count times |
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 |
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 |
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 |
vim-surround https://github.com/tpope/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) |
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. |