VIM - Cheatsheet - Cursor movement

    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.