-
Set cwd to current directory:
:cd %:p:h -
Set
argsto all the files in cwd:args **/* -
Delete all pattern matches in file
:g/MATCH BEGIN/ .,/MATCH END/d -
Delete pattern match in many files and save all changed Make sure your
:argsare set to the correct files (check this with just:args):argdo g/MATCH BEGIN/ .,/MATCH END/d | update -
Vsplit multiple files at once
vim -O <file1> <file2> <file3> <etc...> -
Find & replace all instances of whole word in file
:% s/\<WORD TO FIND\>/NEW WORD/g
-
-
Save suzmas/1f9f0ca4beb9d7dcebd859b8b8bbbda1 to your computer and use it in GitHub Desktop.
Delete, Cut, Copy, and Paste
Delete / Cut
-
Delete n characters forward / Delete n characters backward
nx / nX -
Delete (can be chained with movement keys) / Delete from cursor to end of line
d / D- Example:
dw-> deletes next word
- Example:
-
Delete then enter insert mode (can be chained with movement keys) / Delete from cursor to end of line then enter insert mode
c / C -
Delete whole line / Delete whole line and enter insert mode
dd / cc
Copy
-
Copy with movement key
y- Example:
yw-> copy next word
- Example:
-
Copy current line
yy -
Copy selected text
v (enters visual mode) + (movement keys), thenyto copy selected text; OR
ny-> where n is number of characters -
Copy multiple lines
V (enters visual mode) + (movement keys), thenyto copy selected lines; OR
nyy-> where n is number of lines
Paste
- Paste forwards / Paste backwards
p / P
Other Stuff
-
Insert after next character / Insert at end of line:
a / A -
Insert at cursor / Insert at beginning of line:
i / I -
Insert at end of word:
ea -
Change / Delete based on character:
ct<char>ordt<char>-> change/delete up to given next character (exclusive of character)
cf<char>ordf<char>-> change/delete from cursor to given next character (inclusive of character)- Sample text: " I'm text - " =>
dt-Deletes all text up to -, whereasdf-deletes all text including -
- Sample text: " I'm text - " =>
-
Change / Delete inner match within current line:
ci<char>ordi<char>-> change/delete inside matched pair (exclusive of character)
ca<char>orda<char>-> change/delete around matched pair (inclusive of character)- Sample text: " [This is some text] " =>
ci[Changes text inside '[ ]', whereasca[changes all text including '[ ]' - These only work for paired characters like ' ', " ", { }, [ ], ( ),
, < > - There's also a really handy one
citordit. This says change/delete inner tags.- Sample:
<h1>Hello Suz!</h1>, will remove "Hello Suz!"
- Sample:
- Sample text: " [This is some text] " =>
-
Repeat last command:
.(just a period) -
Insert line below / Insert line above:
o / O(Use this these a lot)
Different Ways To Save and Quit
ZZ
:wq
:x
Movement
Beginning of line:
0End of line:
$First non-white space character on that line:
^Jump forward to start of word (words include punctuation) / jump forward to start of word separated by spaces
w / WH , m n i ' I N 'H m n i ' NJump backwards to start of word (words include punctuation) / jump backwards to start of word separated by spaces
b / BJump forward to last character of word (words include punctuation) / jump forward to last character of word separated by spaces
e / E