vim: Use FSwitch plugin
authorStefan Huber <shuber@sthu.org>
Fri, 18 Mar 2016 08:27:22 +0000 (09:27 +0100)
committerStefan Huber <shuber@sthu.org>
Fri, 18 Mar 2016 08:29:12 +0000 (09:29 +0100)
dotfiles/vim/.vimrc

index df65e4a1e854e135ceaf320bac618b1585aef3e8..1bd9da084f799bd50a5f0cf43e2e86d613057562 100644 (file)
@@ -54,6 +54,7 @@ if exists('g:loaded_plug')
         Plug 'vim-airline/vim-airline-themes'
         Plug 'chrisbra/csv.vim'
         Plug 'craigemery/vim-autotag'
+        Plut 'derekwyatt/vim-fswitch'
         Plug 'godlygeek/tabular'
         "Plug 'kien/ctrlp.vim'
         Plug 'junegunn/fzf'
@@ -171,14 +172,32 @@ au Filetype fortran     set cindent cst csto=0
 "  C, C++, C#, objc, java
 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 
-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,java map <buffer> <F11> :AS <CR>
-au Filetype c,cpp,cs,objc,java map <buffer> <S-F11> :A <CR>
 au Filetype c,cpp,cs,objc,java set cindent cst csto=0
-au Filetype c,cpp,cs,objc map <buffer> <F7> :make <CR>
-au Filetype java map <buffer> <F7> :!ant -f ../build.xml <CR>
+
+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
 
 
 "Prepend the namespace to an identifier, e.g. 'std::' before 'map' excluding