Notes on working with Vim
vim
-> open vim
vim file.txt
-> open file.txt in vim and create this file if it hasn’t been created yet
ESC
-> exit editing mode, go back to command mode
i
-> enter editing mode
:w
-> write (save document while you work on it)
:wq
-> write and quit
ZZ
-> write and quit (does the same as :wq
)
:q
-> quit vim
:e!
-> discard all of the changes you have done
Editing mode
y
-> copy text (yank)
yw
-> copy a word
yy
-> copy the entire line
double commands (yy
) generally effect the whole line
5yy
-> copy 5 lines
often you can pass a number to commands. i.e. 4w
moves you 4 words forward.
p
-> paste text
u
-> undo action
U
-> undo all actions on entire line
v
-> enter the visual mode
going down with your cursor you can highlight text in visual mode
0
-> go to the beginning of the line
$
-> go to the end of the line
w
-> jump from word to word (., count as words)
W
-> jump to the beginnig of the word, respecting white space separation
e
-> move to the end of the word
b
-> move back to the previous word
f/
-> moves you to the first /
. /
can be anything else, e.g. f"
moves the cursor to the first quote.
;
-> repeats the previous command (in case of f + /
)
Command mode
x
-> delete text where the cursor is while in command mode
ctrl + G
-> get status of file
gg
-> go to beginning of file
G
-> go to end of file
/
-> search through file
:100
-> go to line 100 in file
500G
-> go to line 100 in file (as well)
ctrl + f
-> flip to next page
ctrl + b
-> flip to previous page
dw
-> delete a word after cursor
db
-> delete a word before cursor
dd
-> delete entire line
cc
-> delete a line and put us in insert mode
cw
-> a shortcut for dw + i
to delete a word and go into insert mode
ctrl + d
-> scroll a few paragraphs forward
ctrl + u
-> scroll a few paragraphs backwards
H
-> move to head text on screen
M
-> move to middle of text on screen
L
-> move to last line of text on screen
:help grep word
-> search the help for word
*
-> turns the word you are on into a search term. You can now hit n
and move forward or N
to go backwards.
:ls
-> list all files in the buffer
:buffer 5
-> go to file with buffer with id 5
:b#
-> switch to previously used buffer (switch windows)
:bd 5
-> delete buffer with if 5
->|
-> switch between buffers
Tips and tricks:
- Change your font size:
Place this in .gvimrc: set guifont=Monaco:h16
:help motion.txt
contains all the motion options
Further learning resources:
- Great in detail videos on working with Vim: http://derekwyatt.org/vim/tutorials/index.html
- Onramp to Vim from Upcase: https://upcase.com/onramp-to-vim
- Graphical Vim cheat sheets: http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html
- A game for practicing Vim commands: http://vim-adventures.com/