vim bar + usb mount
[dotfiles.git] / .vimrc
1 "          _                    
2 "   __   _(_)_ __ ___  _ __ ___ 
3 "   \ \ / / | '_ ` _ \| '__/ __|
4 "    \ V /| | | | | | | | | (__ 
5 "   (_)_/ |_|_| |_| |_|_|  \___|
6 "                            
7
8 " basics
9 syntax on
10 set number
11 set relativenumber
12 set incsearch
13 set encoding=utf-8
14 set tabstop=4
15 set shiftwidth=4
16 set expandtab
17
18 " spell check
19 setlocal spell
20 set spelllang=en_us
21 set spellcapcheck=
22
23 " conceal
24 set conceallevel=2
25
26 " Bindings
27 let mapleader = ' '
28
29 " File stuff
30 " map <leader>e :Ex<cr>
31 " map <leader>v :Vex<cr>
32 map <leader>l :bn<cr>
33 map <leader>h :bp<cr>
34 map <leader>d :bd<cr>
35
36 " View whitespace
37 set lcs=space:ยท
38 map <leader>s :set list!<cr>
39
40 " colors
41 hi Conceal ctermbg=Black
42 hi SpellBad ctermfg=Red ctermbg=Black cterm=underline
43
44 " statusline
45 function! StatusModeColor()
46     if (mode() =~# '\v(n|no)')
47         hi StatusLine cterm=None gui=None ctermfg=black ctermbg=Yellow
48     elseif (mode() =~# '\v(v|V)')
49         hi StatusLine cterm=None gui=None ctermfg=black ctermbg=Red
50     elseif (mode() ==# 'i')
51         hi StatusLine cterm=None gui=None ctermfg=black ctermbg=LightBlue
52     elseif (mode() ==# 'c') 
53         hi StatusLine cterm=None gui=None ctermfg=black ctermbg=Green
54     else
55         hi StatusLine cterm=None gui=None ctermfg=black ctermbg=DarkGrey
56     endif
57     
58     return ''
59 endfunction
60
61 function! StatusModifiedColor()
62     if getbufinfo(1)[0].changed
63         hi User1 cterm=None gui=None ctermfg=Black ctermbg=LightGrey
64     else
65         hi User1 cterm=None gui=None ctermfg=White ctermbg=Black
66     endif
67
68     return ''
69 endfunction
70
71 call StatusModeColor()
72
73 " set showtabline=2
74
75 set laststatus=2
76 set statusline=
77 set statusline+=%{StatusModeColor()}
78 set statusline+=%{StatusModifiedColor()}
79 set statusline+=\ vim\ \[%{mode()}\]
80 set statusline+=\ %1*\ %F\ %m
81 set statusline+=%=
82 set statusline+=%0*
83 set statusline+=\ %ff
84 set statusline+=\ %r\[%{v:register}\]
85 set statusline+=\ %l/%L:%c
86 set statusline+=\ 
87
88 " Netrw
89 " let g:netrw_liststyle = 3
90 " let g:netrw_banner = 0
91 " let g:netrw_winsize = 25
92 " let g:netrw_browse_split = 4
93
94 " Templates
95 augroup templates
96     autocmd BufNewFile *.tex 0r ~/.vim/templates/skeleton.tex
97     autocmd BufNewFile *.html 0r ~/.vim/templates/skeleton.html
98     autocmd BufNewFile *.rkt 0r ~/.vim/templates/skeleton.rkt
99 augroup END
100
101 " vim plug
102 " this blob auto installs vim plug if it isnt already
103 if empty(glob('~/.vim/autoload/plug.vim'))
104    silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs
105        \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
106          autocmd VimEnter * PlugInstall --sync | source $MYVIMRC
107          endif
108
109 " template stuff
110 call plug#begin('~/.vim/plugged')
111
112 Plug 'sirver/ultisnips'
113 Plug 'lervag/vimtex'
114 Plug 'jiangmiao/auto-pairs'
115 Plug 'PietroPate/vim-tex-conceal'
116 " Plug 'vim-airline/vim-airline'
117 Plug 'tpope/vim-commentary'
118 Plug 'ptzz/lf.vim'
119 Plug 'voldikss/vim-floaterm'
120 " Plug 'ctrlpvim/ctrlp.vim'
121 " Plug 'neoclide/coc.nvim', {'branch': 'release'}
122 " Plug 'habamax/vim-godot'
123
124 call plug#end()
125
126 " Ultisnips
127 let g:UltiSnipsExpandTrigger = '<tab>'
128 let g:UltiSnipsJumpForwardTrigger = '<tab>'
129 let g:UltiSnipsJumpBackwardTrigger = '<s-tab>'
130 let g:UltiSnipsSnippetDirectories=["UltiSnips", "mysnippets"]
131
132 " Vimtex
133 let g:tex_flavor='latex'
134 let g:vimtex_view_method='zathura'
135 let g:vimtex_quickfix_mode=0
136 let g:tex_conceal='abdmgs'
137
138 let g:vimtex_compiler_latexmk = {
139     \'build_dir': '/home/pinosaur/.cache/latexaux/',
140 \}
141
142 " VimAirline
143 " let g:airline#extensions#tabline#enabled = 1
144 " let g:airline#extensions#tabline#buffer_min_count = 2
145 " let g:airline_powerline_fonts=1
146
147 " Ctrlp
148 let g:ctrlp_cmd='CtrlPTag'
149
150 " Lf
151 " let g:lf_replace_netrw = 1 " weird behavior rn
152
153 " Run after plugins
154 autocmd FileType * set formatoptions-=o