h - move cursor left j - move cursor down k - move cursor up l - move cursor right H - move to top of screen M - move to middle of screen L - move to bottom of screen w - jump forwards to the start of a word W - jump forwards to the start of a word (words can contain punctuation) e - jump forwards to the end of a word E - jump forwards to the end of a word (words can contain punctuation) b - jump backwards to the start of a word B - jump backwards to the start of a word (words can contain punctuation) 0 - jump to the start of the line $ - jump to the end of the line % - move to matching character (default supported pairs: '()', '{}', '[]' - use :h matchpairs in vim for more info) ^ - jump to the first non-blank character of the line g_ - jump to the last non-blank character of the line gg - go to the first line of the document 5gg or 5G - go to line 5 G - go to the last line of the document gd - move to local declaration gD - move to global declaration fx - jump to next occurrence of character x tx - jump to before next occurrence of character x Fx - jump to previous occurence of character x Tx - jump to after previous occurence of character x ; - repeat previous f, t, F or T movement , - repeat previous f, t, F or T movement, backwards } - jump to next paragraph (or function/block, when editing code) { - jump to previous paragraph (or function/block, when editing code) zz - center cursor on screen Ctrl + e - move screen down one line (without moving cursor) Ctrl + y - move screen up one line (without moving cursor) Ctrl + b - move back one full screen Ctrl + f - move forward one full screen Ctrl + d - move forward 1/2 a screen Ctrl + u - move back 1/2 a screen
NOTE: Prefix a cursor movement command with a number to repeat it.
For example, 4j moves down 4 lines.