diff --git a/configs/vimrc b/configs/vimrc index 0e58950..912eef6 100644 --- a/configs/vimrc +++ b/configs/vimrc @@ -58,6 +58,8 @@ set vb t_vb= " convert bells to visual bells and do nothing as visual set t_Co=256 " 256 color terminals set modeline " Enable modelines set undofile " saves undo changes in a separate file, so we can undo anytime +set lcs=tab:¦\ " uses a special char at the start of a tab character, uses spaces after that +set nolist " ... but don't display them by default let mapleader="," " use comma to start user-defined (in plugins) functions @@ -176,22 +178,29 @@ set wildignore+=*/build/*,*.egginfo,*.pyc,*.mo,*/dist/* " Auto-commands " ---------------------------------------------------------------------- +" Because most auto-commands add a "trim tailing spaces" regexp, we will +" create a function to do that, so auto-commands can simply :call it. +function TrimWhiteSpace() + %s/\s*$// + '' +endfunction + " default python style " (use spaces instead of tabs (expandtab), uses 4 spaces for tabs (tabstop), " when auto-indenting, also use 4 spaces (shiftwidth), when deleting text, 4 " spaces are a tab (softtabstop) and break the line at column 78 (textwidth)) " also, remove all tailing spaces au FileType python setlocal expandtab tabstop=4 shiftwidth=4 softtabstop=4 textwidth=78 colorcolumn=79 -au FileType python autocmd BufWritePre :%s/\s\+$//e +au FileType python autocmd BufWritePre * :call TrimWhiteSpace() " Default C/C++ style " show a column marker at column 100, break the line at line 100, use tabs " instead of sapces and display a "¦" for tabs (this way we can see the lines " that are not using real tabs) -au FileType c setlocal colorcolumn=100 tw=100 noet list lcs=tab:¦\ -au FileType c autocmd BufWritePre :%s/\s\+$//e -au FileType cpp setlocal colorcolumn=100 tw=100 noet list lcs=tab:¦\ -au FileType cpp autocmd BufWritePre :%s/\s\+$//e +au FileType c setlocal colorcolumn=100 tw=100 noet list +au FileType c autocmd BufWritePre * :call TrimWhiteSpace() +au FileType cpp setlocal colorcolumn=100 tw=100 noet list +au FileType cpp autocmd BufWritePre * :call TrimWhiteSpace() " Default ReStructured document style " reStructured files follow python closely, but use 3 tab stops instead of 4 @@ -238,14 +247,15 @@ au FileType javascript setlocal expandtab tabstop=2 sw=2 sts=2 textwidth=0 let g:vim_json_syntax_conceal = 0 autocmd BufNewFile,BufRead *.json set filetype=json autocmd Filetype json set et ts=4 sts=4 -autocmd FileType json autocmd BufWritePre :%s/\s\+$//e +autocmd FileType json autocmd BufWritePre * :call TrimWhiteSpace() " Default Pinpoint style au BufNewFile,BufRead *.pin set filetype=pinpoint au FileType pinpoint setlocal colorcolumn=79 textwidth=78 " Default Yang style - +au FileType yang set et +au FileType yang autocmd BufWritePre * :call TrimWhiteSpace() " ---------------------------------------------------------------------- " mapings