{ ... }: { programs.vim = { enable = true; settings = { expandtab = true; tabstop = 4; shiftwidth = 4; number = true; relativenumber = true; }; extraConfig = '' autocmd BufWritePre * :%s/\s\+$//e if has("autocmd") au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif endif set cursorline " highlight the current line set wildmenu " visual autocomplete for command menu set background=dark " enables the dark background in themes set showmatch " highlight matching [{()}] "Shows a red line with a width of 80 characters set colorcolumn=80 "Wrap text after 80 characters set textwidth=80 "Autowrap text with textwidh (t) and only insert a comment leader when pressing "o or O (o) set formatoptions=to set encoding=utf-8 highlight BadWhitespace ctermbg=red guibg=darkred au BufRead,BufNewFile * match BadWhitespace /\s\+$/ ''; }; }