update
[dotfiles.git] / .vimrc
diff --git a/.vimrc b/.vimrc
index b105301..a0842f5 100644 (file)
--- a/.vimrc
+++ b/.vimrc
 "   (_)_/ |_|_| |_| |_|_|  \___|
 "                            
 
+" 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
 
+" 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
 
-" Some macros
+function! BufCount()
+    return printf("%d/%d", bufnr("%"), len(getbufinfo({'buflisted':1})))
+endfunction
+
+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
+augroup END
 
 " vim plug
 " this blob auto installs vim plug if it isnt already
@@ -39,17 +110,16 @@ if empty(glob('~/.vim/autoload/plug.vim'))
          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()
 
@@ -69,9 +139,11 @@ let g:vimtex_compiler_latexmk = {
     \'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