" (_)_/ |_|_| |_| |_|_| \___|
"
+" basics
syntax on
set number
set relativenumber
-set hlsearch
+set incsearch
+set smartcase
set encoding=utf-8
set tabstop=4
set shiftwidth=4
set expandtab
-set formatoptions-=cro "disables auto comments
+set nrformats+=alpha "inc/dec alpha
+set hidden
+" cursors depending on mode
+let &t_EI = "\<Esc>[2 q" "normal mode
+let &t_SI = "\<Esc>[6 q" "insert mode
+let &t_SR = "\<Esc>[4 q" "replace mode
+
+" spell check
setlocal spell
set spelllang=en_us
set spellcapcheck=
+" conceal
set conceallevel=2
+" Bindings
+let mapleader = ' '
+
+" File stuff
+map <leader>f :Ex<cr>
+map <leader>l :bn<cr>
+map <leader>h :bp<cr>
+map <leader>d :bd<cr>
+
+let g:netrw_liststyle = 3
+let g:netrw_banner = 0
+let g:netrw_winsize = 25
+
+" View whitespace
+map <leader>s :set list!<cr>
+set lcs=space:ยท
+
" colors
hi Conceal ctermbg=Black
hi SpellBad ctermfg=Red ctermbg=Black cterm=underline
-" Bindings
-nnoremap <C-[> <C-t>
+" statusline
+function! StatusModeColor()
+ if (mode() =~# '\v(n|no)')
+ hi StatusLine cterm=None gui=None ctermfg=black ctermbg=Yellow
+ elseif (mode() =~# '\v(v|V)')
+ hi StatusLine cterm=None gui=None ctermfg=black ctermbg=Red
+ elseif (mode() ==# 'i')
+ hi StatusLine cterm=None gui=None ctermfg=black ctermbg=LightBlue
+ elseif (mode() ==# 'c')
+ hi StatusLine cterm=None gui=None ctermfg=black ctermbg=Green
+ else
+ hi StatusLine cterm=None gui=None ctermfg=black ctermbg=DarkGrey
+ endif
+
+ return ''
+endfunction
+
+function! StatusModifiedColor()
+ if getbufinfo(1)[0].changed
+ hi User1 cterm=None gui=None ctermfg=Black ctermbg=Magenta
+ else
+ hi User1 cterm=None gui=None ctermfg=White ctermbg=Black
+ endif
+
+ return ''
+endfunction
+
+function! BufCount()
+ return printf("%d/%d", bufnr("%"), len(getbufinfo({'buflisted':1})))
+endfunction
-" Some macros
+call StatusModeColor()
+call StatusModifiedColor()
+autocmd BufWritePost <buffer> call StatusModifiedColor()
+
+set laststatus=2
+set statusline=
+set statusline+=%{StatusModeColor()}
+set statusline+=%{StatusModifiedColor()}
+set statusline+=%1*\ |
+set statusline+=%0*\ vim\ \[%{mode()}\]
+set statusline+=\[%{BufCount()}\]
+set statusline+=\ %1*\ %{expand('%:~:.')}\ %m
+set statusline+=%=
+set statusline+=%y
+set statusline+=\ %0*
+set statusline+=\ %r\[%{v:register}\]
+set statusline+=\ %l/%L:%c\ |
+set statusline+=%1*\ |
+
+" Templates
+augroup templates
+ autocmd BufNewFile *.tex 0r ~/.vim/templates/skeleton.tex
+ autocmd BufNewFile *.html 0r ~/.vim/templates/skeleton.html
+ autocmd BufNewFile *.rkt 0r ~/.vim/templates/skeleton.rkt
+ autocmd BufNewFile *.xml 0r ~/.vim/templates/skeleton.xml
+augroup END
" vim plug
" this blob auto installs vim plug if it isnt already
autocmd VimEnter * PlugInstall --sync | source $MYVIMRC
endif
+" template stuff
call plug#begin('~/.vim/plugged')
Plug 'sirver/ultisnips'
Plug 'lervag/vimtex'
-Plug 'jiangmiao/auto-pairs'
Plug 'PietroPate/vim-tex-conceal'
-Plug 'vim-airline/vim-airline'
-Plug 'ctrlpvim/ctrlp.vim'
-" Plug 'neoclide/coc.nvim', {'branch': 'release'}
-" Plug 'habamax/vim-godot'
+Plug 'jiangmiao/auto-pairs'
Plug 'tpope/vim-commentary'
+" Plug 'ptzz/lf.vim'
+" Plug 'voldikss/vim-floaterm'
call plug#end()
+" leader for plugins
+let maplocalleader = "\\"
+
" Ultisnips
let g:UltiSnipsExpandTrigger = '<tab>'
let g:UltiSnipsJumpForwardTrigger = '<tab>'
let g:UltiSnipsJumpBackwardTrigger = '<s-tab>'
let g:UltiSnipsSnippetDirectories=["UltiSnips", "mysnippets"]
+map <localleader>sr :call UltiSnips#RefreshSnippets()<cr>
+
" Vimtex
let g:tex_flavor='latex'
let g:vimtex_view_method='zathura'
\'build_dir': '/home/pinosaur/.cache/latexaux/',
\}
-" VimAirline
-"let g:airline#extensions#tabline#enabled = 1
-let g:airline_powerline_fonts=1
-
" Ctrlp
-let g:ctrlp_cmd='CtrlPTag'
+" let g:ctrlp_cmd='CtrlPTag'
+
+" Lf
+" let g:lf_replace_netrw = 1 " weird behavior rn
+
+" Run after plugins
+autocmd FileType * set formatoptions-=o