-setlocal foldmethod=syntax
-
setlocal textwidth=100
" indent 4 spaces
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 *.h let b:fswitchdst = 'cpp,c'
+ au BufEnter *.h let b:fswitchlocs = 'reg:|include.*|src|'
+ au BufEnter *.cpp let b:fswitchdst = 'hpp,h'
+ au BufEnter *.cpp let b:fswitchlocs = 'reg:|src|include/**|'
augroup END
+
+nnoremap <buffer> gd :YcmCompleter GoTo<CR>
+nnoremap <buffer> <C-W>d :vs<CR>:YcmCompleter GoTo<CR>
+
+setlocal foldmethod=syntax
+setlocal foldlevel=99
+" 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()