Last active
November 27, 2019 20:45
-
-
Save gricard/c94ccda5f591a6ad269a3b45a8db7afd to your computer and use it in GitHub Desktop.
VIM
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
:q quit | |
:q! quit without saving | |
:w save changes | |
:wq save and exit | |
:x save and exit | |
:cq exit with error code | |
MISC | |
. repeat last command | |
:source file reload config file (:source ~/.ideavimrc) | |
Ctrl-o in insert mode, break out and run any command (e.g., `ctrl-o, "+p` to paste system clipboard while in insert mode) | |
NAVIGATION | |
h move left | |
j move down | |
k move up | |
l move right | |
w go to start of next word | |
b go to start of prev word | |
e go to end of word | |
( start of sentence / go to prev empty line before code | |
) end of sentence /go to next empty line before code | |
{ start of paragraph/code block | |
} end of paragraph/code block | |
C-f page down | |
C-b page up | |
^ go to beginning of text in current line | |
0 go to beginning of line | |
$ go to end of line | |
* go to next instance of word at cursor | |
# go to prev instance of word at cursor | |
% go to matching bracket | |
#| go to column # | |
'. go to last edited line | |
`. go to last edited column in last edited line | |
ctrl-o go to previously edited file (repeatable) | |
GO | |
# enter line # and hit enter | |
#G go to line # | |
gg top of file | |
G end of file | |
gd go to definition | |
SCREEN MOVEMENT | |
z. center screen on cursor | |
zt move line with cursor to top of screen | |
zb move line with cursor to bottom of screen | |
H top of screen | |
M middle of screen | |
L bottom of screen | |
EDITING | |
i insert | |
a append | |
A append at end of line | |
D delete to end of line | |
C change to end of line | |
r replace a charater | |
x delete character | |
O insert line above | |
o insert line below | |
c change / delete & insert | |
c$ change to end of line | |
ci'' change content inside next occurrence of '' characters | |
d delete | |
dd delete line | |
dw delete word | |
diw delete current word cursor is inside of | |
di'' delete content inside next occurrence of '' characters | |
u undo last command | |
uu undo last block of commands | |
C-r redo | |
xp swap two characters | |
REPEATING TEXT | |
3i-ESC insert "-" 3 times | |
SELECTING | |
v select by letter | |
V select by line | |
viw select word under cursor | |
CASE | |
U make selected text upper case (in visual selection) | |
u make selected text lower case (in visual selection) | |
~ reverse case of selected text | |
COMMENT SELECTED LINES | |
Ctrl-V | |
Up/Down to select lines | |
shift-I to insert text ("//" or "#" etc) | |
Esc to finish and prepend all lines | |
COPY/PASTE | |
yy copy (yank) a line | |
yw copy word | |
y$ copy to end of line | |
Vjjy select next two lines and copy | |
p paste after | |
P paste before | |
"+y copy selection to system clipboard | |
"+p paste from system clipboard | |
REGISTERS | |
"k___ ___ = command done on register k | |
"kyy copy current line into register k | |
"kp paste contents of register p after cursor | |
:reg list registers | |
"+ OS clipboard | |
"/ last search command | |
": last command | |
"_ black hole register (/dev/null basically) | |
INDENT | |
> shift right | |
< shift left | |
SEARCH | |
/text find text (fwd) | |
?text find text (rev) | |
n go to next match | |
N go to prev match | |
fX find next character "X" | |
FX find prev character "X" | |
Ctrl-R 0 paste contents of register 0 into search input | |
SEARCH & REPLACE | |
:%s/[pattern]/[replacement]/g replace without confirmation | |
:%s/[pattern]/[replacement]/gc replace with confirmation | |
:.,+5s/foo/bar/g replace all "foo" with "bar" from current line (.) to 5 lines down (+5) | |
:5,10s/foo/bar/g replace all "foo" with "bar" on lines 5 - 10 | |
TABS | |
gt go to next tab | |
gT go to prev tab | |
:tabs list tabs | |
:tabedit file open file in tab | |
:tabclose | |
BUFFERS | |
:ls list buffers | |
:bp prev buffer | |
:bn next buffer | |
:bd close buffer | |
:new new window & buffer | |
:e filename edit file | |
SPLITS | |
:sp split window | |
:vsp vertically split window | |
C-w j go to split above | |
C-w k go to split below | |
C-w h go to split left | |
C-w l go to split right | |
:q close split | |
FOLDING | |
zo open fold | |
zc close fold | |
SETTINGS | |
:set number turn on line numbers | |
CUSTOM COMMANDS (in ~/.ideavimrc) | |
nmap g] :action GotoImplementation<CR> go to definition of label under cursor | |
vmap \c :s!^!//!<CR> type \c to comment selected lines | |
vmap \u :s!^//!!<CR> type \u to uncomment selected lines | |
nnoremap <F5> "=strftime("%F%T")<CR>P type F5 to enter current date/time (formatted for gatsby frontmatter) | |
KEY NOTATION | |
http://vim.wikia.com/wiki/Mapping_keys_in_Vim_-_Tutorial_%28Part_2%29 | |
https://stackoverflow.com/questions/1764263/what-is-the-leader-in-a-vimrc-file | |
KEY MAPS | |
http://michael.peopleofhonoronly.com/vim/vim_cheat_sheet_for_programmers_print.png | |
https://external-preview.redd.it/iigrixvxp5aYN9ox7Gr1dfI_rhLRotWlLsCafjJqjEQ.png?auto=webp&s=1594ddc17408cb9186a73c2a6d1a1bf1e00769dd | |
LINKS | |
http://vim.wikia.com/wiki/Buffers | |
http://vim.wikia.com/wiki/Folding | |
http://vim.wikia.com/wiki/Shifting_blocks_visually | |
https://www.keycdn.com/blog/vim-commands | |
https://medium.com/@danidiaz/configuring-ideavimrc-de16a4da0715 | |
https://stackoverflow.com/questions/1764263/what-is-the-leader-in-a-vimrc-file | |
https://guide.freecodecamp.org/vim/useful-commands/ | |
https://www.fprintf.net/vimCheatSheet.html | |
https://www.openvim.com/ | |
REACT DEV | |
https://drivy.engineering/setting-up-vim-for-react/ | |
https://github.com/tpope/vim-vinegar | |
https://github.com/mjackson/dotfiles/blob/master/vimrc | |
https://engagor.github.io/blog/2017/02/15/vim-ide-exploring-code/ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment