]> ruderich.org/simon Gitweb - config/dotfiles.git/blobdiff - vimrc
vimrc: Add StatuslineSyntaxGroup().
[config/dotfiles.git] / vimrc
diff --git a/vimrc b/vimrc
index 4f61e5f7de19a05fe02e627aed78bd42390c0f08..3f94aefb7f20fe2677880a59f7b2eeb17540567b 100644 (file)
--- a/vimrc
+++ b/vimrc
@@ -70,6 +70,18 @@ if exists('+wildignorecase')
     set wildignorecase
 endif
 
+" Ignore files with the following extensions because I almost never want to
+" edit them in Vim (specifying them manually still works of course).
+set wildignore=
+" C
+set wildignore+=*.o,*.d,*.so
+" Java
+set wildignore+=*.class
+" LaTeX
+set wildignore+=*.aux,*.log,*.out,*.toc,*.pdf
+" Python
+set wildignore+=*.pyc
+
 " Show completion menu even if only one entry matches.
 if exists('+completeopt')
     set completeopt+=menuone
@@ -361,6 +373,16 @@ if has('statusline')
         endif
     endfunction
 
+    " Return current syntax group in brackets or nothing if there's none.
+    function! StatuslineSyntaxGroup()
+        let l:group = synIDattr(synID(line('.'), col('.'), 1), 'name')
+        if l:group != ''
+            return '[' . l:group . '] '
+        else
+            return ''
+        endif
+    endfunction
+
     set statusline=
     " on the left
     set statusline+=%02n  " buffer number
@@ -796,6 +818,18 @@ if has('eval')
     let g:ctrlp_cache_dir = $HOME . '/.vim/cache/ctrlp'
     " Permanent cache, cleared by a crontab entry.
     let g:ctrlp_clear_cache_on_exit = 0
+
+" FSWitch settings.
+    " Default don't work well for my projects.
+    augroup vimrc
+        autocmd BufEnter *.cc let b:fswitchdst  = 'h'
+                          \ | let b:fswitchlocs = './'
+        autocmd BufEnter *.h  let b:fswitchdst  = 'cc,c'
+                          \ | let b:fswitchlocs = './'
+    augroup END
+
+    " Switch to corresponding header/source file.
+    nnoremap <silent> <Leader>h :FSHere<CR>
 endif