setlocal textwidth=100 " indent 4 spaces setlocal shiftwidth=4 setlocal tabstop=4 setlocal softtabstop=4 setlocal expandtab setlocal nosmartindent setlocal autoindent setlocal cinkeys-=0# " don't reindent PP directives setlocal cinoptions+=:0 " don't indent case labels " Load the doxygen syntax let b:load_doxygen_syntax = 1 augroup fswitch au BufEnter *.h let b:fswitchdst = 'cpp,c' au BufEnter *.h let b:fswitchlocs = 'reg:|include.*|source|' au BufEnter *.cpp let b:fswitchdst = 'h' au BufEnter *.cpp let b:fswitchlocs = 'reg:|source|include/**|' augroup END let g:switch_const_definitions = \ [ { \ '\%(const \)\@!\([[:alnum:]_:<>]\{-}\) \%(&\)\@!': 'const \1 ', \ 'const \([[:alnum:]_:<>]\{-}\) &\@!': 'const \1 &' , \ 'const \([[:alnum:]_:<>]\{-}\) &': '\1 ' \ } ] nnoremap c :call switch#Switch(g:switch_const_definitions, {}) nnoremap gd :YcmCompleter GoTo nnoremap d :vs:YcmCompleter GoTo " format with = map = (operator-clang-format) vnoremap = :ClangFormat " restore = mapping to g= nnoremap g= = vnoremap g= = setlocal errorformat= setlocal errorformat+=%f:%l:%c:\ %trror:\ %m setlocal errorformat+=%f:%l:%c:\ %tarning:\ %m setlocal errorformat+=%D%*\\a[%*\\d]:\ Entering\ directory\ [`']%f' setlocal errorformat+=%X%*\\a[%*\\d]:\ Leaving\ directory\ [`']%f' setlocal errorformat+=%D%*\\a:\ Entering\ directory\ [`']%f' setlocal errorformat+=%X%*\\a:\ Leaving\ directory\ [`']%f' setlocal errorformat+=%*[^[]\[%tRROR\]%m\ \[%f:%l\] setlocal errorformat+=%*[^[]\[%tARNING\]%m\ \[%f:%l\] setlocal foldmethod=syntax " set foldlevel according to number of matches of 'namespace' and 'class' not " containing ';' function! InitialFoldLevel() let v:errmsg = "" keepjumps keeppatterns silent! 1,/}/s/^\(namespace\|class\) \+[^;]*$//n if v:errmsg == "" let &foldlevel=str2nr(split(v:statusmsg)[0]) endif endf call InitialFoldLevel()