The following is my handy post for vim notes, tips, and tricks.
Tutor
Simply type vimtutor into the terminal to open up the tutor. Go through it a few times until it becomes familiar.
Basic Commands
u- undoU- undo all changes on a lineCtrl + r- redo
Note that u and undo U
Basic Movements

hjkl- move around like cursorsw- start of next worde- end of the wordb- beginning of the word (sort of like the opposite ofw)gg- beginning of fileG- end of file3w- move 3 words-
3igo- write the word “go” three times -
fo- find next “o” -
3fq- find third instance of “q” -
%- jump from a { to a } or ( to a ) 0- beginning of line%- end of line*- find the next instance of the word under the cursor-
#- find the previous instance of the word under the cursor 2G- go to line 2
Often, you can use shift to do the reverse of what you were trying to do:
n- next-
N- previous O- insert new line above (The letterO, not the number0)-
o- insert new line below x- delete character under cursor-
X- delete character to the left of the cursor -
A- append to end of line -
r- replace single character without switching to insert mode d- deletedw- delete first word on right side of cursord$- delete to the end of the line-
p- print the deleted word d2e- delete two words?-
.- keep deleting v- visual mode
show line numbers - set number (or set nu for short)
Operator and Motion
Motions:
w- until the start of the next word, EXCLUDING its first character.e- to the end of the current word, INCLUDING the last character.$- to the end of the line, INCLUDING the last character.
Typing a number before a motion means it repeats that many times.
Change
Using c to change text automatically puts you in insert mode.
ce- change to end of wordc$- change to end of linecc- delete entire line
Operator number motion
Searching for Text
To find a word in Vim, simply type / or ?
Debugging
- set breakpoint:
158 b
Explore - lets you look at other files; navigate the file structure
ls to see multiple files open in vim
Copy and Paste
yy to yank one line
p to paste
So in a lot of ways yy is like dd
Cursor and File Status
Ctrl + gto get file info
Find and Replace
First, you’ll need to change your username
:%s/jsimonelli/yourusernamehere/g
To get confirmation before you make each change:
:%s/old/new/gc
Then, your folder path
If you’re in data ops, it would be
:%s/orig_path1\/orig_path2\/orig_path3/new_path1\/new_path1/g
If you’re in computer vision, it would be
:%s/orig_word/new_word/g
Substitute:
gmeans global (change every case, not just the first)-
%means all lines :%s/username/[NAME]/g
Running External Commands
- Type
:to get the cursor to the bottom of the screen. - Type
!then the command. For example!ls
In VSCode
use kj to enter vim mode in vscode
Recommended Guides or Websites
https://www.barbarianmeetscoding.com/blog/boost-your-coding-fu-with-vscode-and-vim
Configuring Defaults
Edit your .vimrc file in your home directory.
For example, you can add set number here to always show the line numbers.