rc-files/.vimrc
2024-01-25 19:27:33 +01:00

94 lines
2.4 KiB
VimL

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
set backspace=indent,eol,start
" always show status line
set laststatus=2
" format status line
set statusline=\ %{HasPaste()}%F%m%r%h\ %w\ \ CWD:\ %r%{getcwd()}%h\ \ \ Line:\ %l
"
" 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