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.
Adding Vim Keybindings Everywhere
Add them to your terminal:
- Open
~/.zshrc - Add
bindkey -v - To enable backspace in insert mode, add
bindkey '^?' backward-delete-char