augroup fswitch
au!
- au BufEnter *.h let b:fswitchdst = 'c,cpp'
- au BufEnter *.h let b:fswitchlocs = '.,reg:|include.*|src|'
- au BufEnter *.c let b:fswitchdst = 'h'
- au BufEnter *.c let b:fswitchlocs = 'reg:|source|include/**|'
- au BufEnter *.hpp let b:fswitchdst = 'cpp,c'
- au BufEnter *.hpp let b:fswitchlocs = 'reg:|include.*|src|'
- au BufEnter *.cpp let b:fswitchdst = 'hpp,h'
- au BufEnter *.cpp let b:fswitchlocs = 'reg:|src|include/**|'
+ au BufEnter *.h let b:fswitchdst = 'c,cpp,cxx'
+ au BufEnter *.h let b:fswitchlocs = '.,reg:|include.*|src|'
+ au BufEnter *.c let b:fswitchdst = 'h'
+ au BufEnter *.c let b:fswitchlocs = 'reg:|source|include/**|'
+ au BufEnter *.hpp let b:fswitchdst = 'cpp,cxx,c'
+ au BufEnter *.hpp let b:fswitchlocs = 'reg:|include.*|src|'
+ au BufEnter *.c(pp|xx) let b:fswitchdst = 'hpp,h'
+ au BufEnter *.c(pp|xx) let b:fswitchlocs = 'reg:|src|include/**|'
augroup END
nnoremap <buffer> gd :YcmCompleter GoTo<CR>