180 lines
6.0 KiB
Plaintext
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
|