+" folding
+set foldmethod=manual
+set foldnestmax=10
+set nofoldenable
+set foldlevel=2
+
+" View whitespace
+map <leader>s :set list!<cr>
+set listchars=tab:▸\ ,space:·,eol:¬
+
+" reload vimrc
+map <leader>r :source ~/.vimrc<cr>:echo "vimrc reloaded"<cr>
+
+" write with sudo
+cmap w!! w !sudo tee > /dev/null %
+
+" reload current file
+map <leader>e :e<cr>:echo "current file reloaded"<cr>
+map <leader>E :e!<cr>:echo "current file force reloaded"<cr>
+
+" statusline
+function! StatusModeColor()
+ if (mode() =~# '\v(n|no)')
+ hi StatusLine cterm=None gui=None ctermfg=black ctermbg=Yellow
+ elseif (mode() =~# '\v(v|V|\16)')
+ hi StatusLine cterm=None gui=None ctermfg=black ctermbg=Red
+ elseif (mode() ==# 'i')
+ hi StatusLine cterm=None gui=None ctermfg=black ctermbg=LightBlue
+ elseif (mode() ==# 'c')
+ hi StatusLine cterm=None gui=None ctermfg=black ctermbg=Green
+ else
+ hi StatusLine cterm=None gui=None ctermfg=black ctermbg=DarkGrey
+ endif
+endfunction
+
+function! StatusModifiedColor()
+ if &mod
+ hi User1 cterm=None gui=None ctermfg=Black ctermbg=Magenta
+ else
+ hi User1 cterm=None gui=None ctermfg=White ctermbg=Black
+ endif
+endfunction
+
+function! ReloadBar()
+ call StatusModeColor()
+ call StatusModifiedColor()
+ return ''
+endfunction
+
+function! BufCount()
+ return printf("%d/%d", bufnr("%"), len(getbufinfo({'buflisted':1})))
+endfunction
+
+autocmd BufEnter * call ReloadBar()
+autocmd BufWritePost <buffer> call ReloadBar()
+
+set laststatus=2
+set statusline=
+set statusline+=%{ReloadBar()}
+set statusline+=%1*\ |
+set statusline+=%0*\ vim\ \[%{mode()}\]
+set statusline+=\[%{BufCount()}\]
+set statusline+=\ %1*\ %{expand('%:~:.')}\ %m
+set statusline+=%=
+set statusline+=%y
+set statusline+=\ %0*
+set statusline+=\ %r\[%{v:register}\]
+set statusline+=\ %l/%L:%c\ |
+set statusline+=%1*\ |
+
+" Tab line
+hi TabLineSel cterm=Bold ctermfg=Yellow
+hi TabLine cterm=None ctermfg=Grey ctermbg=Black
+hi TabLineFill cterm=None ctermbg=Black