update (mpd-change fix)
[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>f :Ex<cr>
31 map <leader>l :bn<cr>
32 map <leader>h :bp<cr>
33 map <leader>d :bd<cr>
34
35 let g:netrw_liststyle = 3
36 let g:netrw_banner = 0
37 let g:netrw_winsize = 25
38
39 " View whitespace
40 map <leader>s :set list!<cr>
41 set lcs=space:ยท
42
43 " colors
44 hi Conceal ctermbg=Black
45 hi SpellBad ctermfg=Red ctermbg=Black cterm=underline
46
47 " statusline
48 function! StatusModeColor()
49     if (mode() =~# '\v(n|no)')
50         hi StatusLine cterm=None gui=None ctermfg=black ctermbg=Yellow
51     elseif (mode() =~# '\v(v|V)')
52         hi StatusLine cterm=None gui=None ctermfg=black ctermbg=Red
53     elseif (mode() ==# 'i')
54         hi StatusLine cterm=None gui=None ctermfg=black ctermbg=LightBlue
55     elseif (mode() ==# 'c') 
56         hi StatusLine cterm=None gui=None ctermfg=black ctermbg=Green
57     else
58         hi StatusLine cterm=None gui=None ctermfg=black ctermbg=DarkGrey
59     endif
60     
61     return ''
62 endfunction
63
64 function! StatusModifiedColor()
65     if getbufinfo(1)[0].changed
66         hi User1 cterm=None gui=None ctermfg=Black ctermbg=Magenta
67     else
68         hi User1 cterm=None gui=None ctermfg=White ctermbg=Black
69     endif
70
71     return ''
72 endfunction
73
74 function! BufCount()
75     return printf("%d/%d", bufnr("%"), len(getbufinfo({'buflisted':1})))
76 endfunction
77
78 call StatusModeColor()
79 call StatusModifiedColor()
80
81 set laststatus=2
82 set statusline=
83 set statusline+=%{StatusModeColor()}
84 set statusline+=%1*\ |
85 set statusline+=%0*\ vim\ \[%{mode()}\]
86 set statusline+=\ %1*\ %{expand('%:~:.')}\ %m
87 set statusline+=%=
88 set statusline+=%y
89 set statusline+=\ %0*
90 set statusline+=\ %r\[%{v:register}\]
91 set statusline+=\ %l/%L:%c\ |
92 set statusline+=%1*\ |
93 " set statusline+=%{StatusModeColor()}
94 " set statusline+=%{StatusModifiedColor()}
95 " set statusline+=%1*\ | 
96 " set statusline+=%0*\ vim\ \[%{mode()}\]
97 " set statusline+=\[%{BufCount()}\]
98 " set statusline+=\ %1*\ %{expand('%:~:.')}\ %m
99 " set statusline+=%=
100 " set statusline+=%y
101 " set statusline+=\ %0*
102 " set statusline+=\ %r\[%{v:register}\]
103 " set statusline+=\ %l/%L:%c\ |
104 " set statusline+=%1*\ |
105
106 " Templates
107 augroup templates
108     autocmd BufNewFile *.tex 0r ~/.vim/templates/skeleton.tex
109     autocmd BufNewFile *.html 0r ~/.vim/templates/skeleton.html
110     autocmd BufNewFile *.rkt 0r ~/.vim/templates/skeleton.rkt
111 augroup END
112
113 " vim plug
114 " this blob auto installs vim plug if it isnt already
115 if empty(glob('~/.vim/autoload/plug.vim'))
116    silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs
117        \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
118          autocmd VimEnter * PlugInstall --sync | source $MYVIMRC
119          endif
120
121 " template stuff
122 call plug#begin('~/.vim/plugged')
123
124 Plug 'sirver/ultisnips'
125 Plug 'lervag/vimtex'
126 Plug 'PietroPate/vim-tex-conceal'
127 Plug 'jiangmiao/auto-pairs'
128 Plug 'tpope/vim-commentary'
129 " Plug 'ptzz/lf.vim'
130 " Plug 'voldikss/vim-floaterm'
131
132 call plug#end()
133
134 " Ultisnips
135 let g:UltiSnipsExpandTrigger = '<tab>'
136 let g:UltiSnipsJumpForwardTrigger = '<tab>'
137 let g:UltiSnipsJumpBackwardTrigger = '<s-tab>'
138 let g:UltiSnipsSnippetDirectories=["UltiSnips", "mysnippets"]
139
140 " Vimtex
141 let g:tex_flavor='latex'
142 let g:vimtex_view_method='zathura'
143 let g:vimtex_quickfix_mode=0
144 let g:tex_conceal='abdmgs'
145
146 let g:vimtex_compiler_latexmk = {
147     \'build_dir': '/home/pinosaur/.cache/latexaux/',
148 \}
149
150 " Ctrlp
151 " let g:ctrlp_cmd='CtrlPTag'
152
153 " Lf
154 " let g:lf_replace_netrw = 1 " weird behavior rn
155
156 " Run after plugins
157 autocmd FileType * set formatoptions-=o