rc-files/.vimrc_600
2024-05-01 15:01:29 +02:00

180 lines
6.0 KiB
Plaintext

set number
colo zellner
filetype plugin indent on
set nocompatible
syntax on
set ignorecase
set showmatch
let g:netrw_banner = 0
let g:netrw_liststyle = 3
let g:netrw_browse_split = 3
let g:netrw_altv = 1
let g:netrw_winsize = 15
let mapleader = ","
let g:mapleader = ","
set wildmenu
"Trying to fix syntaxHighlighting
"autocmd BufEnter * :syntax sync fromstart
set hidden
" Enable folding
set foldmethod=indent
set foldlevel=99
" fold with space
nnoremap <space> za
" always show status line
set laststatus=2
" format status line
" set statusline=\ %{HasPaste()}%F%m%r%h\ %w\ \ CWD:\ %r%{getcwd()}%h\ \ \ Line:\ %l/%L
set backspace=indent,eol,start
" always show status line
set laststatus=2
" format status line
" %m%r%h -> modified, readonly Top/Bot (?)
set statusline=
" set statusline=\ %{HasPaste()}%F%m%r%h\ %w\ \ CWD:\ %r%{getcwd()}%h\ %=%1*Line:\ %4l\ /%4L%*\ -\ %5*%{&ff}%*%y
" set statusline=\ %{HasPaste()}%F%m%r%h\ %w\ \ CWD:\ %r%{getcwd()}%h\ \ \ Line:\ %4l\ /%4L\ -\ %y%2*0x%04B\ %*
set statusline+=\ %{HasPaste()} "hasPaste
set statusline +=%1*\ %n\ %* "buffer number
set statusline +=%5*%{&ff}%* "file format
set statusline +=%3*%y%* "file type
set statusline +=%4*\ %<%F%* "full path
set statusline +=%2*%m%* "modified flag
set statusline +=%1*%=%5l%* "current line
set statusline +=%2*/%L%* "total lines
set statusline +=%1*%4v\ %* "virtual column number
set statusline +=%2*0x%04B\ %* "character under cursor
set statusline+=%7*\[%n] "buffernr
set statusline+=%1*\ %<%F\ "File+path
set statusline+=%2*\ %y\ "FileType
set statusline+=%3*\ %{''.(&fenc!=''?&fenc:&enc).''} "Encoding
set statusline+=%3*\ %{(&bomb?\",BOM\":\"\")}\ "Encoding2
set statusline+=%4*\ %{&ff}\ "FileFormat (dos/unix..)
set statusline+=%8*\ %=\ row:%l/%L\ (%03p%%)\ "Rownumber/total (%)
set statusline+=%9*\ col:%03c\ "Colnr
set statusline+=%0*\ \ %m%r%w\ %P\ \ "Modified? Readonly Top/bot.
"hi User1 guifg=#ffdad8 guibg=#880c0e
"hi User2 guifg=#000000 guibg=#F4905C
"hi User3 guifg=#292b00 guibg=#f4f597
"hi User4 guifg=#112605 guibg=#aefe7B
"hi User5 guifg=#051d00 guibg=#7dcc7d
"hi User7 guifg=#ffffff guibg=#880c0e gui=bold
"hi User8 guifg=#ffffff guibg=#5b7fbb
"hi User9 guifg=#ffffff guibg=#810085
"hi User0 ctermfg=231 ctermbg=33
" colors does not seem to work in vim (w/o gui), but in nvim
hi User1 ctermfg=224 ctermbg=88
hi User2 ctermfg=16 ctermbg=209
hi User3 ctermfg=58 ctermbg=228
hi User4 ctermfg=22 ctermbg=156
hi User5 ctermfg=22 ctermbg=114
hi User7 ctermfg=231 ctermbg=88 gui=bold
hi User8 ctermfg=231 ctermbg=67
hi User9 ctermfg=231 ctermbg=90
hi User0 ctermfg=231 ctermbg=27
"
" Movement
"
" treat long lines as break lines
map j gj
map k gk
" useful mappings for tabs
map <leader>tn :tabnew
map <leader>tm :tabmove
map <leader>to :tabonly<cr>
map <leader>tc :tabclose<cr>
" move smarter between windows
map <C-j> <C-W>j
map <C-k> <C-W>k
map <C-h> <C-W>h
map <C-l> <C-W>l
au BufRead,BufNewFile *.c,*.h,*.conf match Error /\s\+$/
au BufRead,BufNewFile *.py,*.pyw match pythonSpaceError /\s\+$/
au BufWritePost *.pm silent! %s/\s\+$//c
au BufWritePost *.pm silent! %s/^\(\s\+}\)\(for\|if\|else\)/\1 \2/c
" au BufWritePost *.pm silent! %s/\(\S\)\s\s\+/\1 /c
" au BufWritePost *.pm %s/^\(\s\+\)\(for\|if\|else\)\((\|{\)/\1\2 \3/c
au BufWritePost *.pm silent! %s/^\(\s\+}*\s*\)\(for\|if\|unless\|else\)\((\|{\)/\1\2 \3/c
au BufWritePost *.pm silent! %s/\v(\s*(if|for|else|unless|while|until).*\))\{\s*$/\1 \{/gc
"au BufWritePost *.pm %s/\(\$[a-z_]\+\)\(\(->{[\$a-z_]\+}\)\{-}\)\(->[a-z_]\+\)\(;\)/\1\2\4()\5/gc
" au BufWritePost *.pm silent! %s/\v(\$\w+)((-\>\{\"*\$*\w+\"*\}|-\>\w+\(\))*)(-\>\w+)(-\>|;)/\1\2\4\(\)\5/gc
"au BufWritePost *.pm silent! %s/\v(\S+),(\S+)/\1, \2/gc
"au BufWritePost *.pm silent! %s/){/) {/gc
"au BufWritePost *.pm silent! %s/\(\w\){/\1 {/gc
"au BufWritePost *.pm silent! %s/\s\+$//gc
" au BufWritePost *.pm silent! %s/ \{4\}/\t/gc
au BufWritePost *.pm silent! %s/\n\{3,\}/\r\r/c
" %s/\v^(sub \w+)\{/\1 \{/gc -> sub ..{ -> sub .. {
"augroup format_save | au!
" autocmd BufWritePost %s/^\s\+\n/\r/gce
"augroup end
" helper functions
function! HasPaste()
if &paste
return 'PASTE MODE '
en
return ''
endfunction
" Add blank line above / below and have curser in insert at start of line
" (indented if no paste) in insert
inoremap <c-p> <esc>^i<cr><esc>ki
inoremap <c-o> <esc>$i<cr>
" my playing arounf mapping
" make current word upper/lowercase in insert moode
inoremap <c-u> <esc>viwUi
inoremap <c-l> <esc>viwui
" delete line in insertmode
inoremap <c-d> <esc>ddi
" move current line done
" map - ddp
" open / reload vimrc
nnoremap <leader>ev :vsplit $MYVIMRC<cr>
nnoremap <leader>sv :source $MYVIMRC<cr>
" quotation marks around current word
nnoremap <leader>" viw<esc>a"<esc>hbi"<esc>lel
" leave insert mode
inoremap jk <esc>
" au BufRead,BufNewFile *.rs set filetype=rust
" autocmd! will clear the group on reload
augroup rustgroup
autocmd!
" abbr iff with if syntax for tust files
autocmd FileType rust :iabbrev <buffer> iff if {}<left><left>
" comment line in normal mode
autocmd FileType rust nnoremap <buffer> <leader>c I//<esc>
augroup END
" ci( => remove inside next parentheses and delete conenten, ind in insert
" mode. Next hier: cil( => remove inside last parenthises ....
onoremap il( :<c-u>normal! F)vi(<cr>
" didnt get to work to search further then start of line with onoremap -> this would work
" though
" nnoremap cil( ?)<cr>vi(di
augroup markdown
autocmd!
" if dealing with markdown & and header has ==.. under header line operator
" pendung for dealing with header i.e cih removes the header of section one is
" cur in
autocmd FileType markdown onoremap <buffer> ih :<c-u>execute "normal! ?^==\\+$\r:nohlsearch\rkvg_"<cr>
augroup END