X-Git-Url: https://git.danieliu.xyz/?p=dotfiles.git;a=blobdiff_plain;f=.vimrc;h=cecf819ed7faa0669c0beb2d77f5aa2e8b2ef1dd;hp=684ca1c989b0790eebc3500aa116ef39590064f5;hb=HEAD;hpb=3d42dcc5682bd1905857911d12f661d252fa139e diff --git a/.vimrc b/.vimrc index 684ca1c..cecf819 100644 --- a/.vimrc +++ b/.vimrc @@ -9,18 +9,19 @@ syntax on set number set relativenumber -" set hlsearch set incsearch set encoding=utf-8 set tabstop=4 set shiftwidth=4 set expandtab -set formatoptions-=cro "disables auto comments +set ignorecase +set smartcase +set hidden -" spell check -setlocal spell -set spelllang=en_us -set spellcapcheck= +" cursors depending on mode +let &t_EI = "\[2 q" "normal mode +let &t_SI = "\[6 q" "insert mode +let &t_SR = "\[4 q" "replace mode " conceal set conceallevel=2 @@ -28,51 +29,167 @@ set conceallevel=2 " Bindings let mapleader = ' ' -" map e :Ex -" map v :Vex +" netrw stuff +map f :Ex map l :bn map h :bp map d :bd -" colors -hi Conceal ctermbg=Black -hi SpellBad ctermfg=Red ctermbg=Black cterm=underline +let g:netrw_liststyle = 3 +let g:netrw_banner = 0 +let g:netrw_winsize = 25 + +" file finding +set path=** +set wildmenu + +" spell check +setlocal spell +set spelllang=en_us +set spellcapcheck= -" Netrw -" let g:netrw_liststyle = 3 -" let g:netrw_banner = 0 -" let g:netrw_winsize = 25 -" let g:netrw_browse_split = 4 +" use s as prefix for spell check related commands +map s +map sf 1z= +map sn ]s +map sN [s +map sa zg +map sd zw + +" folding +set foldmethod=manual +set foldnestmax=10 +set nofoldenable +set foldlevel=2 + +" View whitespace +map s :set list! +set listchars=tab:▸\ ,space:·,eol:¬ + +" reload vimrc +map r :source ~/.vimrc:echo "vimrc reloaded" + +" write with sudo +cmap w!! w !sudo tee > /dev/null % + +" reload current file +map e :e:echo "current file reloaded" +map E :e!:echo "current file force reloaded" + +" 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 +endfunction + +function! StatusModifiedColor() + if &mod + hi User1 cterm=None gui=None ctermfg=Black ctermbg=Magenta + else + hi User1 cterm=None gui=None ctermfg=White ctermbg=Black + endif +endfunction + +function! ReloadBar() + call StatusModeColor() + call StatusModifiedColor() + return '' +endfunction + +function! BufCount() + return printf("%d/%d", bufnr("%"), len(getbufinfo({'buflisted':1}))) +endfunction + +autocmd BufEnter * call ReloadBar() +autocmd BufWritePost call ReloadBar() + +set laststatus=2 +set statusline= +set statusline+=%{ReloadBar()} +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*\ | + +" Tab line +hi TabLineSel cterm=Bold ctermfg=Yellow +hi TabLine cterm=None ctermfg=Grey ctermbg=Black +hi TabLineFill cterm=None ctermbg=Black + +" 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 + +" highlighting (will get rid of this sometime prob) +au BufRead,BufNewFile *.svelte set filetype=svelte +au! Syntax svelte source ~/.vim/syntax/svelte.vim + +au BufRead,BufNewFile *.shader set filetype=glsl +au! Syntax svelte source ~/.vim/syntax/glsl.vim " vim plug " this blob auto installs vim plug if it isnt already -if empty(glob('~/.vim/autoload/plug.vim')) - silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs - \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim - autocmd VimEnter * PlugInstall --sync | source $MYVIMRC - endif - +fun! s:VimPlugSetup() + if empty(glob('~/.vim/autoload/plug.vim')) + silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim + autocmd VimEnter * PlugInstall --sync | source $MYVIMRC + else + echo 'VimPlug is already installed' + endif +endfun +command PlugSetup :call s:VimPlugSetup() + +" 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 'tpope/vim-commentary' -Plug 'ptzz/lf.vim' -" Plug 'ctrlpvim/ctrlp.vim' -" Plug 'neoclide/coc.nvim', {'branch': 'release'} -" Plug 'habamax/vim-godot' +Plug 'ap/vim-buftabline' +Plug 'lervag/vimtex', { 'for': 'tex' } +Plug 'PietroPate/vim-tex-conceal', { 'for': 'tex' } +Plug 'takac/vim-hardtime' call plug#end() +" leader for plugins +let maplocalleader = "\\" + " Ultisnips let g:UltiSnipsExpandTrigger = '' let g:UltiSnipsJumpForwardTrigger = '' let g:UltiSnipsJumpBackwardTrigger = '' let g:UltiSnipsSnippetDirectories=["UltiSnips", "mysnippets"] +map sr :call UltiSnips#RefreshSnippets():echo "Refreshed Snippets" + +" latex stuff +" fun! LatexCompile() +" echo 'compiling latex' +" endfun +" augroup latex +" autocmd! +" autocmd BufWritePost *.tex :call LatexCompile() +" augroup END + " Vimtex let g:tex_flavor='latex' let g:vimtex_view_method='zathura' @@ -81,15 +198,57 @@ let g:tex_conceal='abdmgs' let g:vimtex_compiler_latexmk = { \'build_dir': '/home/pinosaur/.cache/latexaux/', + \'options': [ + \ '-shell-escape', + \], \} -" VimAirline -let g:airline#extensions#tabline#enabled = 1 -let g:airline#extensions#tabline#buffer_min_count = 2 -let g:airline_powerline_fonts=1 +" buftabline +let g:buftabline_show = 1 + +" hardtime +let g:hardtime_default_on = 1 +let g:hardtime_maxcount = 2 -" Ctrlp -let g:ctrlp_cmd='CtrlPTag' +" Run after plugins +autocmd FileType * set formatoptions-=o + +" colors +" based off https://github.com/jeffkreeftmeijer/vim-dim/blob/main/colors/default-light.vim +hi SpecialKey ctermfg=4 +hi TermCursor cterm=reverse +hi NonText ctermfg=12 +hi Directory ctermfg=4 +hi ErrorMsg ctermfg=15 ctermbg=1 +hi IncSearch cterm=reverse +hi MoreMsg ctermfg=2 +hi ModeMsg cterm=bold +hi Question ctermfg=2 +hi Title ctermfg=5 +hi WarningMsg ctermfg=1 +hi WildMenu ctermfg=0 ctermbg=11 +hi Conceal ctermbg=0 +hi SpellBad ctermfg=9 ctermbg=0 cterm=underline +hi SpellRare ctermbg=13 ctermbg=0 cterm=underline +hi SpellLocal ctermfg=14 ctermbg=0 cterm=underline +hi PmenuSbar ctermbg=8 +hi PmenuThumb ctermbg=0 +hi CursorColumn ctermbg=7 +hi CursorLine cterm=underline +hi MatchParen cterm=NONE ctermfg=0 ctermbg=14 +hi Constant ctermfg=1 +hi Special ctermfg=5 +hi Identifier cterm=NONE ctermfg=6 +hi Statement ctermfg=3 +hi PreProc ctermfg=5 +hi Type ctermfg=2 +hi Underlined cterm=underline ctermfg=5 +hi Ignore ctermfg=15 +hi Error ctermfg=15 ctermbg=9 +hi Todo ctermfg=0 ctermbg=11 +hi Comment ctermfg=DarkGrey +hi lineNr ctermfg=DarkGrey +hi Folded ctermfg=0 +hi Pmenu ctermfg=0 ctermbg=7 +hi PmenuSel ctermfg=0 ctermbg=6 -" Lf -" let g:lf_replace_netrw = 1 " weird behavior rn