2018-08-31
A few hints for Vim taken from the Linux Academy course (which I ought to use more).
Basics
normal mode
= command mode -> ESC insert mode
-> i-key
:wq
- write & quit :q!
- quit no matter of unsaved changes
h
- left j
- down k
- up l
- right
b
- back one word w
- forward one word e
- last letter of word
%
- switch between matching brackets
(modifier)5e
- forward 5 words (modifier)21l
- 21 characters to the right (modifier)4k
- 4 lines down (modifier)0h
- go to beginning of line
A
- append at end of line a
- append at position next to cursor i
- insert at position before cursor I
- insert at beginning of line
o
- enter insert mode at the beginning of the next line
r
- replace character under cursor (modifier) 4r
- replace next 4 characters from cursor position x
- delete characer under cursor
u
- undo last command (command!) .
- redo last command (modifier)4.
- redo last command 4 times
d
- begin deletion process dd
- delete whole line under cursor dw
- delete a word (modifier)d3w
- delete next 3 words (modifier)d0
- delete the beginning of the line until cursor position (modifier)d$
- delete the end of the line until cursor position
Copy, Paste, Search and Replace
y
- copy / yank yy
- copy (yank) the current line (modifier)2yy
- copy the current plus next line p
- paste
v
- enter mark mode v3e
- mark next three words
>>
- insert indentation (default = 8 spaces) 5>>
- indent next 5 lines <<
- remove indentation
/
+ string + enter - search for string from top n
- go to next result N
- go to previous result ? + string + enter
- search from string from botton
:%s/search/replace/gc
- search all lines (%) for “search” and replace globally (g
) with “replace”, ask for confirmation (c
)
Executing External Commands
:!ls -al ~
- do a ls for home directory
:r !cat ~/.bash_history
- read in the result of the command (cat in this case) at cursor position
:9,18 ! sort -Vr
- sort lines 9 to 18 with the bash sort command (-r
reverse, -V
version sort meaning 1, 3, 10, 2 will work correctly as a human suspects 1, 2, 3, 10)
Files and Buffers
ZZ
- write & quit (:wq
equivalent) :saveas
- save a file under new name :ls
- show buffers (aka open files)
:bad text.txt
- load buffer address (aka file in location) :bn
- switch to next buffer :bn
- switch to previous buffer Ctrl+6
- cycle to next buffer