]> ruderich.org/simon Gitweb - config/dotfiles.git/blobdiff - vimrc
vimrc: Create new split windows on the right.
[config/dotfiles.git] / vimrc
diff --git a/vimrc b/vimrc
index 26e7463c1499e9773d4b15bf130c082cd7591ccf..5bc468a4bd3a0c97f77cc16a2d46d406ce03f3c1 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
@@ -93,6 +105,9 @@ if exists('+cryptmethod')
     set cryptmethod=blowfish
 endif
 
+" Create new split windows on the right (and not left).
+set splitright
+
 " Clear all vimrc-related autocmds. Has to be done here as the vimrc augroup
 " is used multiple times. Necessary to support reloading the vimrc.
 if has('autocmd')
@@ -361,6 +376,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
@@ -520,6 +545,11 @@ if exists('+spell')
     nnoremap <silent> <Leader>sn :set nospell<CR>
     nnoremap <silent> <Leader>se :set spell spelllang=en_us<CR>
     nnoremap <silent> <Leader>sd :set spell spelllang=de_de<CR>
+" If no spell support is available, these mappings do nothing.
+else
+    nmap <Leader>sn <Nop>
+    nmap <Leader>se <Nop>
+    nmap <Leader>sd <Nop>
 endif
 
 " Add semicolon to the end of the line. Thanks to
@@ -735,11 +765,17 @@ if has('syntax')
     let g:hs_highlight_boolean = 1
     let g:hs_highlight_types = 1
     let g:hs_highlight_more_types = 1
+    " Java.
+    let g:java_highlight_java_lang_ids = 1 " color java.lang.* identifiers
     " Perl.
     let g:perl_fold = 1
     let g:perl_fold_blocks = 1
     let g:perl_nofold_packages = 1
     let g:perl_include_pod = 1 " syntax coloring for PODs
+    " PHP.
+    let g:php_folding = 3    " fold functions
+    let g:php_short_tags = 0 " no short tags (<? .. ?>), not always usable
+    let g:php_sql_query = 1  " highlight SQL queries in strings
     " Python.
     let g:python_highlight_all = 1
     " Shell.
@@ -786,6 +822,28 @@ if has('eval')
     let g:xptemplate_brace_complete = 0
     " Only highlight the current placeholder.
     let g:xptemplate_highlight = 'current'
+
+" CtrlP settings.
+    " Don't manage the working directory (the default setting is too slow for
+    " me).
+    let g:ctrlp_working_path_mode = 0
+    " Path to cache directory. I prefer to keep generated files as local as
+    " possible.
+    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