Code
vim
:set foldmethod=manual " manually create folds
:set foldmethod=indent " fold by indentation level
:set foldmethod=marker " fold by {{{ }}} markers
:set foldmethod=syntax " fold based on syntax (slow on big files)
:set foldmethod=expr " custom 'foldexpr'
" Manual folds (visual select then :fold)
zf " create fold over motion/selection
zd " delete fold under cursor
zD " delete fold recursively
zo / zc " open / close fold
zr / zm " reduce / increase fold level (whole buffer)
zR / zM " open all / close all folds
[z / ]z " jump to start / end of current fold
zn " temporarily disable folding (no fold)
" Recommended for modern dev:
" :set foldmethod=expr
" :set foldexpr=nvim_treesitter#foldexpr() " (Neovim treesitter)