-au Filetype c,cpp,cs,objc map <F7> :make <CR>
-au Filetype java map <F7> :!ant -f ../build.xml <CR>
-au Filetype c,cpp,cs,obj set makeprg=make
-au Filetype c,cpp,cs,obj set shiftwidth=4
-
-
-"Adds STL prefix 'std::' to 'id'
-function AddNamespaceDeclTo(ns, id)
- echo "Add '" . a:ns . "' to " . a:id
- "Line starts with a:id
- execute ":%s!^\\(\\s*\\)" . a:id . "\\>!\\1" . a:ns . "::" . a:id . "!e"
- "Line beginning, white space, not # or / (preprocessor or comment)
- execute ":%s!^\\(\\s*[^#/].*[^:]\\)\\<" . a:id . "\\>!\\1" . a:ns . "::" . a:id . "!ge"
-endfunction
+
+au Filetype c,cpp,cs,objc,java map <buffer> <F4> :cnext<CR>
+au Filetype c,cpp,cs,objc,java map <buffer> <S-F4> :cprevious<CR>
+
+au Filetype c,cpp,cs,objc set makeprg=make
+au Filetype c,cpp,cs,objc map <buffer> <F7> :make<CR>
+au Filetype java map <buffer> <F7> :!ant -f ../build.xml<CR>
+
+" If FSwitch exists
+runtime! plugin/fswitch.vim
+if exists(":FSHere")
+ au Filetype c,cpp,objc map <buffer> <F11> :vsplit<CR>:FSRight<CR>
+ au Filetype c,cpp,objc map <buffer> <S-F11> :FSHere<CR>
+
+ " Substitute lib <-> include, otherwise take the same directory
+ au BufEnter *.c* let b:fswitchlocs='reg:/lib/include/,rel:.'
+ au BufEnter *.h* let b:fswitchlocs='reg:/include/lib/,rel:.'
+ "au BufEnter *.c* let b:fswitchlocs='rel:.,rel:../inc*/**,rel:../../inc*/**'
+
+ au BufEnter *.cpp,*.cc,*.cxx let b:fswitchdst='h,hxx,hpp,hh'
+ au BufEnter *.h,*.hh,*.hxx let b:fswitchdst='cc,c,cxx,cpp'
+else
+ au Filetype c,cpp,cs,objc,java map <buffer> <F11> :AS<CR>
+ au Filetype c,cpp,cs,objc,java map <buffer> <S-F11> :A<CR>
+endif