vim: Use FSwitch plugin
[shutils.git] / dotfiles / vim / .vimrc
index efe5dd897bd35d0e0938876f8326d3940084a77e..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
@@ -311,6 +330,7 @@ endif
 
 au BufRead,BufNewFile *.cls set filetype=tex
 au Filetype tex set textwidth=80
+au Filetype tex set shiftwidth=2
 au Filetype tex set smartindent
 " Override Tagbar Toggle with LatexBox TOC
 au Filetype tex nmap <buffer> <F10> :LatexTOCToggle<CR>
@@ -352,6 +372,7 @@ au Filetype python set expandtab
 " Wrap text after a certain number of characters
 au Filetype python set textwidth=79
 
+let g:syntastic_python_checkers = ["pyflakes"]
 
 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 "  XML, Ipe
@@ -440,6 +461,7 @@ let g:deoplete#enable_at_startup = 1
 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 
 let g:ycm_global_ycm_extra_conf = '~/.ycm_extra_conf.py'
+let g:ycm_confirm_extra_conf = 0
 
 let g:ycm_min_num_of_chars_for_completion = 4
 let g:ycm_collect_identifiers_from_tags_files = 1