Minimal vim folds
I use folds to reduce visual information on screen, but Vim’s default folds are pretty cluttered. Here’s Vim with defaults folds:
I searched the internet to find a good pre-made config, but couldn’t find any. So I figured out how to customize it myself. Here’s the final result:
And here’s the config:
1
2
3
4
5
6
7
8
" Custom Fold Text
function! MyFoldText()
let line = getline(v:foldstart)
let foldedlinecount = v:foldend - v:foldstart + 1
return ' '. foldedlinecount . line
endfunction
set foldtext=MyFoldText()
set fillchars=fold:\
First is an icon, which indicates a fold. Then a number, the number of hidden lines. Then the first line in the fold.
For the icon (on line 5), I have a Nerd Font glyph (search for ‘fold’), which doesn’t render on the browser, but works in Vim since I’m using JetBrainsMono Nerd Font. If you don’t have a Nerd Font installed, feel free to replace it with whatever character represents a fold to you.
Also note that on line 8, there is a space after the backslash.
Tweak for Nord Colorscheme
One more thing - I’m using the Nord color scheme, and I don’t like its default colors for folds. I changed it like so:
" Nord Overrides
augroup nord-theme-overrides
autocmd!
autocmd ColorScheme nord highlight Folded guibg=#313745 guifg=#556076
augroup END