vim updates
[~madcoder/dotfiles.git] / vimrc
diff --git a/vimrc b/vimrc
index 23e3632..7127c78 100644 (file)
--- a/vimrc
+++ b/vimrc
@@ -53,11 +53,15 @@ set softtabstop=4               " sts
 set expandtab                   " expand tabs
 set notextmode                  " no - I am using Vim on UNIX!
 set textwidth=0                 " Don't wrap words by default
+set cc=+1
 set title                       " Permet de voir le tit. du doc. crt. ds les XTERM
 set viminfo='1000,/1000,:1000,<1000,@1000,n~/.viminfo
 set history=1000
                                 " What info to store from an editing session
                                 " in the viminfo file;  can be used at next session.
+set undofile
+set undodir=~/.cache/vim/
+au BufWritePre /tmp/* setlocal noundofile
 set sessionoptions=buffers,folds,localoptions,options,tabpages,help
 
 set ignorecase                  " Do case insensitive matching
@@ -88,19 +92,20 @@ set complete-=k complete+=k
 set tags=tags;/,.tags;/,TAGS;/
 
 set cinoptions=
+set cinoptions+=L0.5s          " align labels at 0.5 shiftwidth
+set cinoptions+=:0.5s,=0.5s    " same for case labels and code following a label
+set cinoptions+=g0.5s,h0.5s    " same for c++ stuff
 set cinoptions+=t0             " type on the line before the functions is not idented
-set cinoptions+=:2,=2          " indent case ...: of 2 from the switch {
 set cinoptions+=(0,Ws          " indent in functions ( ... ) when it breaks
-set cinoptions+=g2,h2          " indent C++ scope of 2, and the members from 2 from it
 set cinoptions+=m1             " aligh the closing ) properly
-"set cinoptions+=l1            " align closing brace with the case
-"set cinoptions+=b1            " align break; with case ...:
+set cinoptions+=j1             " java/javscript -> fixes blocks
+"set cinoptions+=l0.5s          " align code after label ignoring braces.
 
 set diffopt=filler,context:5,iwhite
 set fillchars+=diff:\ ,vert:│
 
 set makeprg=LC_ALL=C\ make\ MONOCHROME=1
-set grepprg=egrep\ -n\ $*\ /dev/null
+set grepprg=egrep\ --exclude='*.blk.c'\ --exclude='*.blkk.cc'\ -n\ $*\ /dev/null
 
 exe "set path=." . system("echo | cpp -v 2>&1 | grep '^ .*/include' | tr -d \"\n\" | tr \" \" \",\"")
 set path+=.;/
@@ -180,10 +185,10 @@ inoremap <S-Tab> <C-R>=TabAlign()<CR>
 
 " }}}
 
-map + :cn<cr>
-map - :cp<cr>
-map <kPlus> :cn<cr>
-map <kMinus> :cp<cr>
+map + :cnext<cr>
+map - :cprevious<cr>
+map <kPlus> :cnext<cr>
+map <kMinus> :cprevious<cr>
 
 map Q gq
 
@@ -195,10 +200,6 @@ inoremap <F6>   <c-o>mzviwU`z
 noremap  <F7>   :set ai!<CR>:set ai?<cr>
 inoremap <F7>   <space><esc><F7>a<bs>
 
-noremap  <F9>   :bp<cr>
-inoremap <F9>   <esc>:bp<cr>
-noremap  <F10>  :bn<cr>
-inoremap <F10>  <esc>:bn<cr>
 noremap  <F11>  :make!<cr>:bo cw 8<cr><cr>
 inoremap <F11>  <esc>:make!<cr>:bo cw 8<cr><cr>
 noremap  <S-F11> :make clean<cr><cr>
@@ -211,6 +212,8 @@ if has("autocmd")
     filetype plugin indent on
     syntax on
 
+    au Syntax {cpp,c,javascript} runtime syntax/doxygen.vim
+
     au BufReadPost *
                 \ if line("'\"") > 0 && line("'\"") <= line("$") |
                 \   exe "normal g`\"" |
@@ -364,6 +367,7 @@ if has("gui_running") || &t_Co >= 88
         exec <SID>myhi("Normal",       "none",       "dfdfdf",    "NONE")
         exec <SID>myhi("MoreMsg",      "none",       "dfdfdf",    "NONE")
     endif
+    exec <SID>myhi("ColorColumn",  "none",       "NONE",      "0f0f0f")
     exec <SID>myhi("Comment",      "none",       "afafff",    "0f0f0f")
     exec <SID>myhi("Folded",       "none",       "afafff",    "0f0f0f")
 
@@ -424,6 +428,22 @@ if has("gui_running") || &t_Co >= 88
 
     " C
     exec <SID>myhi("cFunction",    "none",       "b0b0b0",    "NONE")
+
+    " Doxygen
+    if !exists(':SynLink')
+        command -nargs=+ SynLink hi def link <args>
+    endif
+    SynLink doxygenSpecialTypeOnelineDesc  doxygenBrief
+    SynLink doxygenSpecialOnelineDesc      doxygenBrief
+    SynLink doxygenSpecialHeading          doxygenBrief
+    SynLink doxygenParamDirection          doxygenSpecial
+
+    exec <SID>myhi("doxygenComment",   "none",       "6060ff",    "0f0f0f")
+    exec <SID>myhi("doxygenBrief",     "none",       "6060ff",    "0f0f0f")
+    exec <SID>myhi("doxygenPrev",      "none",       "6060ff",    "0f0f0f")
+    exec <SID>myhi("doxygenParam",     "none",       "6060ff",    "0f0f0f")
+    exec <SID>myhi("doxygenSpecial",   "none",       "6060ff",    "0f0f0f")
+    exec <SID>myhi("doxygenParamName", "underline",  "6060ff",    "0f0f0f")
 else
     hi Comment      cterm=none       ctermfg=blue       ctermbg=none
     hi Folded       cterm=none       ctermfg=brown      ctermbg=none