# Neovim Cheatsheet - Cheatsheets - Launch Pad

__ _______________________ _________._________________________ \_ _____/ \______ \ / _ \ / _____/ / _____/ | | \_ _____/ | __) | _/ / /_\ \ / \ ___ / \ ___ | | | __)_ | \ | | \ / | \ \ \_\ \ \ \_\ \ | |___ | \ \___ / |____|_ / \____|__ / \______ / \______ / |_______ \ /_______ / \/ \/ \/ \/ \/ \/ \/

# Neovim Cheatsheet

← Back to cheatsheets

← Home

## Modes

- i - Insert mode

- v - Visual mode (character)

- V - Visual mode (line)

- Ctrl+v - Visual mode (block)

- R - Replace mode

- : - Command mode

- Esc - Normal mode (from any mode)

## Basic Movement

### Character Movement

- h - Left

- j - Down

- k - Up

- l - Right

- 0 - Start of line

- ^ - First non-blank character of line

- $ - End of line

- g_ - Last non-blank character of line

### Word Movement

- w - Next word start

- W - Next WORD start (space-separated)

- e - End of word

- E - End of WORD

- b - Previous word start

- B - Previous WORD start

- ge - End of previous word

### Line Movement

- gg - First line

- G - Last line

- {number}G - Go to line number

- : - Go to line (command mode)

- % - Matching bracket/parenthesis

- * - Next occurrence of word under cursor

- # - Previous occurrence of word under cursor

### Screen Movement

- H - Top of screen

- M - Middle of screen

- L - Bottom of screen

- Ctrl+u - Half page up

- Ctrl+d - Half page down

- Ctrl+b - Full page up

- Ctrl+f - Full page down

- zz - Center cursor on screen

- zt - Top of screen

- zb - Bottom of screen

## Configuration

### Config File Location

- ~/.config/nvim/init.lua (Lua config, recommended)

- ~/.config/nvim/init.vim (Vimscript config)

- ~/.vimrc (legacy location, still works)

### Example Key Bindings

Customize key mappings in your config:

    -- Example Lua config
    vim.keymap.set('n', '<leader>w', ':w<CR>', { desc = 'Save file' })
    vim.keymap.set('n', '<leader>q', ':q<CR>', { desc = 'Quit' })
    vim.keymap.set('n', '<C-h>', '<C-w>h', { desc = 'Move to left window' })
    vim.keymap.set('n', '<C-j>', '<C-w>j', { desc = 'Move to bottom window' })
    vim.keymap.set('n', '<C-k>', '<C-w>k', { desc = 'Move to top window' })
    vim.keymap.set('n', '<C-l>', '<C-w>l', { desc = 'Move to right window' })

Or in Vimscript:

    " Example Vimscript config
    nnoremap <leader>w :w<CR>
    nnoremap <leader>q :q<CR>
    nnoremap <C-h> <C-w>h
    nnoremap <C-j> <C-w>j
    nnoremap <C-k> <C-w>k
    nnoremap <C-l> <C-w>l

## Tips

- Use :help <topic> for built-in help

- Use :checkhealth to diagnose issues

- Leader key is space by default (can be changed)

- Use motions with operators (d, c, y) for powerful editing

- Use . to repeat last change

- Use u to undo, Ctrl+r to redo

- Use :w to save, :q to quit, :wq to save and quit

- Use :split or :vsplit for multiple windows

- Use :tabnew for tabs

- Use * and # to search for word under cursor

- Use /pattern to search forward, ?pattern to search backward

- Use n and N to navigate search results

- Use % to jump to matching bracket/parenthesis

- Use gg to go to top, G to go to bottom

- Use :set number to show line numbers

- Use :set relativenumber for relative line numbers

- Lua config (init.lua) is recommended over Vimscript

- Use plugins via plugin managers (lazy.nvim, packer.nvim, etc.)

← Back to cheatsheets

← Home