vi(m) -- CHANGE cw word cc line C rest o' line s under cursor S same as cc r replace DELETE dw cut word dd cut line D cut rest o' line x under cursor X before cursor xp transpose INSERT a after cursor A at end o' line i before cursor I at beginning o' line o open line below O open line above yw yank (copy) word yy yank (copy) line p put (paste) yanked (copy) content MOVE k line up j line down l right h left 0 beginning o' line $ end o' line G end o' file ^D scroll down w word forward b word backward e end o' word nG line n OTHER u undo . repeat / find down ? find up n next :se wm=10 wrap words :r file read in file :!cmd run cmd ZZ same as :qw! ^Z suspend vi