Almost any movement/change can be preceeded with a numeric count. MOVEMENT: hjkl left down up right w word b back (word) Shift [wb] find blank delimited word 0 beginning of line $ end of line _ first non-blank character Find: f(c) find char 'c' t(c) to (stop before) 'c' {/} start/end of para (/) start/end of sentence /re find regular expression 're' ?re find backwords Shift-find will find backwards % match parentheses CHANGES: x delete char rx replace char with 'x' s... subs 1char w/ '...' c(m)... change (delete, insert) to movement 'm' d(m) delete to movement i... insert string '...' (before cursor) a... append string '...' after cursor o open new line (below) in insert mode O Open new line (above) in insert mode !(m)cmd will prompt for command, then pipe lines through the command > indent line < un-indent line (often used as ?count >>? or ?count< start,end of word re=// matches last expression ^ (at beginning of string only) matches the start of the line $ (at the end of the string only) matches the end of the line eg: /^blahblahblah$/ would have to match the whole line. In Replacement String: & is string matched \1 is string portion matched inside first \(...\) \2 is string portion inside second \(...\) etc. / vi Reference