+set smartindent
[dotvim.git] / vimrc
diff --git a/vimrc b/vimrc
index a126e1546610a5aa62541552e7e832cfc44495d4..4e5fc18da6e901967fa49fb12f7106e79033c13d 100644 (file)
--- a/vimrc
+++ b/vimrc
@@ -3,12 +3,12 @@ let b:vim_conf_dir = $HOME.'/.vim'
 if has("win32")
     let b:vim_conf_dir = $HOME.'\vimfiles'
 endif
+set nocompatible
 
 if isdirectory( b:vim_conf_dir . '/tmp/') == 0
     call mkdir(b:vim_conf_dir.'/tmp/', 'p', 0700)
 endif
 
-set nocompatible
 
 "load plugins
 if filereadable(b:vim_conf_dir . '/plugins.vundel.vim')
@@ -16,7 +16,7 @@ if filereadable(b:vim_conf_dir . '/plugins.vundel.vim')
 endif
 "
 " auskommentiert, macht in screen das nix gut aussieht..
-"set termguicolors 
+"set termguicolors
 set background=dark
 try
     let g:gruvbox_contrast_dark = 'hard'
@@ -31,9 +31,10 @@ syntax on
 set backspace=indent,eol,start
 set relativenumber
 set number
-"set lazyredraw
+set lazyredraw
 
 set autoindent
+set smartindent
 set expandtab
 set tabstop=4
 set softtabstop=4
@@ -41,8 +42,6 @@ set shiftwidth=4
 
 set pastetoggle=<F3>
 
-set scrolloff=5
-"set sidescrolloff=10
 set encoding=utf-8
 set modeline
 
@@ -96,8 +95,7 @@ nnoremap <C-l> <C-W>l
 nnoremap <Leader>i a'" <<  << "' <Esc>6hi
 nnoremap <Leader>a a'{}' <Esc>2hi
 nnoremap <Leader>A a'"+  +"' <Esc>4hi
-
-nnoremap <Leader>A a'"+  +"' <Esc>4hi
+autocmd FileType cpp nnoremap <Leader>a a'"<<  <<"' <Esc>5hi
 
 " see :h restore-position
 nnoremap <Leader>= msgg=G`s
@@ -105,6 +103,7 @@ nnoremap <Leader>= msgg=G`s
 inoremap kj <Esc>
 inoremap jk <Esc>
 inoremap ts<tab> // TODOts: <Esc>=$A
+inoremap obs<tab> /// <para><CR> OBSOLETE kann nach der Abspaltung von 1.12 entfernt werden<CR><Esc>=$A
 inoremap no<tab> <Esc>0i <nodoc /><Esc>0i///<Esc>=$
 inoremap td<tab> <Esc>0i//TODOts: doku<CR><summary> </summary><Esc>0i/// <Esc>kVj=$
 
@@ -125,13 +124,17 @@ nnoremap  ZZ :wqall<CR>
 nnoremap  <F6> :wa<CR>:make -j 8<CR><CR>
 inoremap  <F6> <esc>:wa<CR>:make -j 8<CR><CR>
 
+nnoremap  <F5> :wa\|!./%<CR>
+inoremap  <F5> <esc>:wa\|!./%<CR>
+
 nnoremap <C-l> <C-W>l
 
 " Copy paste to/from system clipboard
 vnoremap <C-c> "*y
-inoremap <C-S-v> <esc>"*p
-vnoremap <C-S-v> "*p
-
+noremap  <C-v> "*p
+noremap  <C-V> "*p
+inoremap <C-v> <esc>"*p
+vnoremap <C-v> "*p
 
 "nnoremap <Leader>= mzgg=G`z<CR>
 nnoremap <F2> :call FormatDocument()<CR>
@@ -148,12 +151,11 @@ nnoremap <M-j> :m +1<CR>==
 " repeat last command on all selected:
 vnoremap . :normal.<CR>
 
-
 vnoremap <leader>tt :Tabular /^[^-+=]*\zs\S*=/l1l1<cr>
 vnoremap <leader>t, :Tabular /,\zs/l1l1<cr>
-vnoremap <leader>t<space>  :Tabular /\s\+\zs/l1l1<cr>
+vnoremap <leader>t<space>  :Tabular /\s\+\zs/l1l0<cr>
+vnoremap <leader>t:        :Tabular /:\zs/l1l0<cr>
 vnoremap <leader>t(  :Tabular /(/l1l0<cr>
-vnoremap <leader>t:  :Tabular /:/r0c1l0<cr>
 "
 " append word under cursor with 'or' to current search pattern
 nnoremap <Leader>s yiw/<C-R>/\\|<C-R>"<cr>
@@ -170,7 +172,6 @@ else
     nnoremap <Leader>r :source ~/.vim/vimrc<CR>
 endif
 
-
 filetype plugin indent on
 
 " ack seems to have vanished from artfull, thus use silversearchger-ag
@@ -184,19 +185,27 @@ set list listchars=tab:→\ ,trail:·
 hi Visual  guifg=White guibg=Blue gui=bold
 
 set diffopt+=vertical
-set diffopt+=iwhite
+"set diffopt+=iwhite
 set diffopt+=algorithm:patience
 "jump to next diff and center line
 noremap <leader>n ]cz.
 noremap <leader>p [cz.
+if has ('win32')
+    set guifont=DejaVu_Sans_Mono:h11:cANSI:qDRAFT
+endif
 if &diff
     " ignore whitespace
     set diffopt+=vertical
     set diffopt+=iwhite
     set diffopt+=algorithm:patience
+
     syntax off
+    highlight DiffText term=reverse cterm=reverse ctermfg=214 ctermbg=234 gui=reverse guifg=lightgreen guibg=DarkGreen
     " go fullscreen:
-    autocmd GuiEnter * simalt ~x
+    if has ('win32')
+        autocmd GuiEnter * simalt ~x
+        set guifont=DejaVu_Sans_Mono:h8:cANSI:qDRAFT
+    endif
     " make all diff windows the same size
     autocmd VimResized * wincmd =
     autocmd VimEnter *  2wincmd w
@@ -219,11 +228,10 @@ else
 
 endif
 
+
 " remove currently unused fugitive buffers:
 autocmd BufReadPost fugitive://* set bufhidden=delete
 
-autocmd GuiEnter * simalt ~x
-
 " reset terminal colors after vim leaves
 "if !has("gui_running")
 "    au VimLeave * !echo -ne "\033[0m"
@@ -233,20 +241,10 @@ autocmd GuiEnter * simalt ~x
 " wird.
 set t_ut=
 
-
-if has("gui_running")
-    if has('win32')
-        set guifont=Consolas:h10:cANSI:qDRAFT
-    else
-        set guifont=Monospace\ 12
-    endif
-endif
-
-
 if has ('win32') || has('win32unix')
     let g:vimwiki_list = [
                 \{
-                \   'path':'~/vimwiki', 
+                \   'path':'~/vimwiki',
                 \   'path_html':'~/vimwiki/html/',
                 \   'syntax': 'markdown',
                 \   'ext': '.md'
@@ -367,13 +365,13 @@ function! UndoCSharStringInterpolation()
     silent! s/{\(.\{-}\)}/" + \1 + "/g
 endfunction
 
-
 """" ALE start """"
 inoremap <F4> <Esc>:ALEToggle<CR>
 nnoremap <F4> <Esc>:ALEToggle<CR>
 let g:ale_linters = {
             \   'cpp': ['gcc', 'cppcheck', 'clang'],
-            \} 
+            \   'perl': ['perl', 'perlcritic'],
+            \}
 let b:ale_warn_about_trailing_whitespace = 1
 let g:ale_sign_column_always = 1
 let g:ale_cpp_clang_options =
@@ -387,7 +385,7 @@ let g:ale_cpp_clang_options =
             \   -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g+
             \'
 
-let g:ale_cpp_gcc_options = 
+let g:ale_cpp_gcc_options =
             \  '-std=c++14 -Wall -pedantic -fPIC
             \   -I/usr/include/x86_64-linux-gnu/qt5
             \   -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport
@@ -408,13 +406,12 @@ if has("patch-7.4.354")
     set lbr
 endif
 
-hi CursorLineNr  term=underline  cterm=underline      ctermfg=White    ctermbg=darkBlue guibg=darkyellow
-hi clear Cursorline
-"hi CursorLine    gui=underline term=underline cterm=underline
+hi CursorLineNr  ctermbg=black guibg=black
+hi CursorLine    ctermbg=black guibg=black
 augroup CursorLine
-    au!
-    au VimEnter,WinEnter,BufWinEnter * setlocal cursorline
-    au WinLeave * setlocal nocursorline
+  au!
+  au VimEnter,WinEnter,BufWinEnter * setlocal cursorline
+  au WinLeave * setlocal nocursorline
 augroup END
 
 packadd! matchit
@@ -429,7 +426,6 @@ let g:acp_behaviorHtmlOmniLength = 0
 let g:acp_behaviorCssOmniPropertyLength = 1
 let g:acp_behaviorCssOmniValueLength = 0
 
-
 highlight ExtraWhitespace ctermfg=red guifg=red ctermbg=white guibg=DarkGrey
 
 " keine trailing whitespaces in hub log files anzeigen