aboutsummaryrefslogtreecommitdiff
path: root/vim/.vimrc-min
blob: 83d3771866b1bc7c95d19cb4e06a972d7b29d7ab (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
"           ██
"          ░░
"  ██    ██ ██ ██████████  ██████  █████
" ░██   ░██░██░░██░░██░░██░░██░░█ ██░░░██
" ░░██ ░██ ░██ ░██ ░██ ░██ ░██ ░ ░██  ░░
"  ░░████  ░██ ░██ ░██ ░██ ░██   ░██   ██
"   ░░██   ░██ ███ ░██ ░██░███   ░░█████
"    ░░    ░░ ░░░  ░░  ░░ ░░░     ░░░░░
"
"  ▓▓▓▓▓▓▓▓▓▓
" ░▓ author ▓ xero <x@xero.nu>
" ░▓ code   ▓ http://code.xero.nu/dotfiles
" ░▓ mirror ▓ http://git.io/.files
" ░▓▓▓▓▓▓▓▓▓▓
" ░░░░░░░░░░
"
" use vim settings, rather than vi settings
" must be first, because it changes other options as a side effect
set nocompatible

" paste without auto indentation
set paste

" maintain undo history between sessions
set undofile
set undodir=~/.vim/undo
set noswapfile

" lazy file name tab completion
set wildmode=longest,list,full
set wildmenu
set wildignorecase

" case insensitive search
set ignorecase
set smartcase

" the /g flag on :s substitutions by default
set gdefault

" make backspace behave in a sane manner
set backspace=indent,eol,start

" searching
set hlsearch
set incsearch

" use indents of 4 spaces
set shiftwidth=2

" tabs are spaces, not tabs
set expandtab

" an indentation every four columns
set tabstop=2

" let backspace delete indent
set softtabstop=2

" remove trailing whitespaces and ^M chars
autocmd FileType c,cpp,java,php,js,python,twig,xml,yml autocmd BufWritePre <buffer> :call setline(1,map(getline(1,"$"),'substitute(v:val,"\\s\\+$","","")'))

" let mapleader=","
vnoremap <silent> <leader>y :w !xsel -i -b<CR>
nnoremap <silent> <leader>y V:w !xsel -i -b<CR>
nnoremap <silent> <leader>p :silent :r !xsel -o -b<CR>

" ┏━╸┏━┓┏┳┓┏┳┓┏━┓┏┓╻╺┳┓┏━┓
" ┃  ┃ ┃┃┃┃┃┃┃┣━┫┃┗┫ ┃┃┗━┓
" ┗━╸┗━┛╹ ╹╹ ╹╹ ╹╹ ╹╺┻┛┗━┛

" make ; work like : for commands (lazy shifting)
nnoremap ; :

" json pretty print
command J :%!python -mjson.tool

" remove trailing white space
command Nows :%s/\s\+$//

" remove blank lines
command Nobl :g/^\s*$/d

" toggle spellcheck
command Spell :setlocal spell! spell?

" ╻┏┓╻╺┳╸┏━╸┏━┓┏━╸┏━┓┏━╸┏━╸
" ┃┃┗┫ ┃ ┣╸ ┣┳┛┣╸ ┣━┫┃  ┣╸ 
" ╹╹ ╹ ╹ ┗━╸╹┗╸╹  ╹ ╹┗━╸┗━╸

" show matching brackets/parenthesis
set showmatch

" disable startup message
set shortmess+=I

" syntax highlighting and colors
syntax on
colorscheme sourcerer
filetype off

" stop unnecessary rendering
set lazyredraw

" show line numbers
set number

" no line wrapping
set nowrap

" no folding
set foldlevel=99
set foldminlines=99

" don't wrap long lines
set nowrap

" highlight column
set cursorcolumn

" enable file type detection and do language-dependent indenting
if has("autocmd")
  filetype on
  filetype indent on
  filetype plugin on
endif

" ┏━┓╺┳╸┏━┓╺┳╸╻ ╻┏━┓╻  ╻┏┓╻┏━╸
" ┗━┓ ┃ ┣━┫ ┃ ┃ ┃┗━┓┃  ┃┃┗┫┣╸ 
" ┗━┛ ╹ ╹ ╹ ╹ ┗━┛┗━┛┗━╸╹╹ ╹┗━╸
" █▓▒░ wizard status line
set laststatus=2

hi BgColor guibg=#3A3A3A guifg=#ffffff ctermbg=237 ctermfg=255
hi ModColor guibg=#3A3A3A guifg=#afaf00 ctermbg=237 ctermfg=142
hi StatColor guibg=#3a3a3a guifg=#ffffff ctermbg=237 ctermfg=255
hi GitColor guibg=#4e4e4e guifg=#ffffff ctermbg=239 ctermfg=255
hi VoidColor guibg=#222222 guifg=#4e4e4e ctermbg=NONE ctermfg=239
hi TypeColor guibg=#D78700 guifg=#262626 ctermbg=66 ctermfg=235
hi PosColor guibg=#8787AF guifg=#262626 ctermbg=103 ctermfg=235

function! WizardStatus(mode)
    let statusline="%#BgColor#"
    if &modified == 1
	let statusline.="%#ModColor# »» "
    else
    	let statusline.="    "
    endif
    if &readonly != ''
        hi StatColor guifg=#af0000 ctermfg=124
    endif
    let statusline.="%#StatColor#%F "
	  let statusline .= '%#VoidColor#▒░ '
    let statusline .= "%=%h%w\ %#TypeColor#▓"
    if &filetype != ''
        let statusline .="▒ %Y "
    endif
    let statusline .="▒ %{&encoding}:%{&fileformat} %#PosColor#▒ %p%% ░ %l/%L\.\%c\ ▒"
    return statusline
endfunction

au WinEnter * setlocal statusline=%!WizardStatus('Enter')
au WinLeave * setlocal statusline=%!WizardStatus('Leave')
set statusline=%!WizardStatus('Enter')

function! Colorize(mode)
  if a:mode == 'i'
    hi StatColor guibg=#D78700 guifg=#222222 ctermbg=110 ctermfg=235
  elseif a:mode == 'r'
    hi StatColor guibg=#D78700 guifg=#222222 ctermbg=172 ctermfg=235
  elseif a:mode == 'v'
    hi StatColor guibg=#D78700 guifg=#222222 ctermbg=172 ctermfg=235
  else
    hi StatColor guibg=#af0000 guifg=#222222 ctermbg=124  ctermfg=235
  endif
endfunction

au InsertEnter * call Colorize(v:insertmode)
au InsertLeave * hi StatColor guibg=#3a3a3a guifg=#ffffff ctermbg=237 ctermfg=255

"   ██████  ██████  ██   ██ ██████  █████   █████  ██████  █████  ██████
"  ██░░░░  ██░░░░██░██  ░██░░██░░████░░░██ ██░░░██░░██░░████░░░██░░██░░██
" ░░█████ ░██   ░██░██  ░██ ░██ ░░░██  ░░ ░███████ ░██ ░░░███████ ░██ ░░
"  ░░░░░██░██   ░██░██  ░██ ░██   ░██   ██░██░░░░  ░██   ░██░░░░  ░██   
"  ██████ ░░██████ ░░██████░███   ░░█████ ░░██████░███   ░░██████░███   
" ░░░░░░   ░░░░░░   ░░░░░░ ░░░     ░░░░░   ░░░░░░ ░░░     ░░░░░░ ░░░   
"  r  e  a  d     c  o  d  e     l  i  k  e     a     w  i  z  a  r  d 
"
" sourcerer colors by xero harrison (http://xero.nu)
"  ├─ based on sorcerer by Jeet Sukumaran (http://jeetworks.org)
"  └─ based on mustang by Henrique C. Alves (hcarvalhoalves@gmail.com)

set background=dark
hi clear

if exists("syntax_on")
  syntax reset
endif

let colors_name = "sourcerer"


"  █▓▒░ GUI colors
hi Normal       guifg=#c2c2b0 guibg=#222222 gui=NONE
hi ColorColumn  guifg=NONE    guibg=#1c1c1c
hi Cursor       guifg=NONE    guibg=#626262 gui=NONE
hi CursorColumn guibg=#2d2d2d
hi CursorLine   guibg=#2d2d2d
hi DiffAdd      guifg=#000000 guibg=#3cb371 gui=NONE
hi DiffDelete   guifg=#000000 guibg=#aa4450 gui=NONE
hi DiffChange   guifg=#000000 guibg=#4f94cd gui=NONE
hi DiffText     guifg=#000000 guibg=#8ee5ee gui=NONE
hi Directory    guifg=#1e90ff guibg=NONE    gui=NONE
hi ErrorMsg     guifg=#ff6a6a guibg=NONE    gui=bold
hi FoldColumn   guifg=#68838b guibg=#4B4B4B gui=bold
hi Folded       guifg=#406060 guibg=#232c2c gui=NONE
hi IncSearch    guifg=#ffffff guibg=#ff4500 gui=bold
hi LineNr       guifg=#878787 guibg=#3A3A3A gui=NONE
hi MatchParen   guifg=#fff000 guibg=NONE    gui=bold
hi ModeMsg      guifg=#afafaf guibg=#222222 gui=bold
hi MoreMsg      guifg=#2e8b57 guibg=NONE    gui=bold
hi NonText      guifg=#404050 guibg=NONE    gui=NONE

hi Pmenu        guifg=#ffffff guibg=#444444
hi PmenuSel     guifg=#000000 guibg=#b1d631
"  hi           PmenuSbar     guifg=#ffffff guibg=#c1cdc1 gui=NONE
"  hi           PmenuThumb    guifg=#ffffff guibg=#838b83 gui=NONE

hi Question     guifg=#00ee00 guibg=NONE    gui=bold
hi Search       guifg=#000000 guibg=#d6e770 gui=bold
hi SignColumn   guifg=#ffffff guibg=NONE    gui=NONE
hi SpecialKey   guifg=#505060 guibg=NONE    gui=NONE
hi SpellBad     guisp=#ee2c2c gui=undercurl
hi SpellCap     guisp=#0000ff gui=undercurl
hi SpellLocal   guisp=#008b8b gui=undercurl
hi SpellRare    guisp=#ff00ff gui=undercurl
hi StatusLine   guifg=#000000 guibg=#808070 gui=bold
hi StatusLineNC guifg=#000000 guibg=#404c4c gui=italic
hi VertSplit    guifg=#404c4c guibg=#404c4c gui=NONE
hi TabLine      guifg=fg      guibg=#d3d3d3 gui=underline
hi TabLineFill  guifg=fg      guibg=NONE    gui=reverse
hi TabLineSel   guifg=fg      guibg=NONE    gui=bold
hi Title        guifg=#528b8b guibg=NONE    gui=bold
hi Visual       guifg=#000000 guibg=#6688aa gui=NONE
hi WarningMsg   guifg=#ee9a00 guibg=NONE    gui=NONE
hi WildMenu     guifg=#000000 guibg=#87ceeb gui=NONE
hi ExtraWhitespace guifg=fg   guibg=#528b8b gui=NONE

"  syntax highlighting
hi Comment      guifg=#686858 gui=italic
hi Boolean      guifg=#ff9800 gui=NONE
hi String       guifg=#779b70 gui=NONE
hi Identifier   guifg=#9ebac2 gui=NONE
hi Function     guifg=#faf4c6 gui=NONE
hi Type         guifg=#7e8aa2 gui=NONE
hi Statement    guifg=#90b0d1 gui=NONE
hi Keyword      guifg=#90b0d1 gui=NONE
hi Constant     guifg=#ff9800 gui=NONE
hi Number       guifg=#cc8800 gui=NONE
hi Special      guifg=#719611 gui=NONE
hi PreProc      guifg=#528b8b gui=NONE
hi Todo         guifg=#8f6f8f guibg=#202020 gui=italic,underline,bold

" diff
hi diffOldFile      guifg=#88afcb   guibg=NONE      gui=italic
hi diffNewFile      guifg=#88afcb   guibg=NONE      gui=italic
hi diffFile         guifg=#88afcb   guibg=NONE      gui=italic
hi diffLine         guifg=#88afcb   guibg=NONE      gui=italic
hi link             diffSubname     diffLine
hi diffAdded        guifg=#3cb371   guibg=NONE      gui=NONE
hi diffRemoved      guifg=#aa4450   guibg=NONE      gui=NONE
hi diffChanged      guifg=#4f94cd   guibg=NONE      gui=NONE
hi link             diffOnly        Constant
hi link             diffIdentical   Constant
hi link             diffDiffer      Constant
hi link             diffBDiffer     Constant
hi link             diffIsA         Constant
hi link             diffNoEOL       Constant
hi link             diffCommon      Constant
hi link             diffComment     Constant

" python
hi pythonException  guifg=#90b0d1 guibg=NONE gui=NONE
hi pythonExClass    guifg=#996666 guibg=NONE gui=NONE
hi pythonDecorator  guifg=#888555 guibg=NONE gui=NONE
hi link pythonDecoratorFunction pythonDecorator

"  █▓▒░ 256 colors 
hi Normal                 cterm=NONE             ctermbg=NONE  ctermfg=145
hi ColorColumn            cterm=NONE             ctermbg=16    ctermfg=NONE
hi Cursor                 cterm=NONE             ctermbg=241   ctermfg=fg
hi CursorColumn           cterm=NONE             ctermbg=16    ctermfg=fg
hi CursorLine             cterm=NONE             ctermbg=236   ctermfg=fg
hi DiffAdd                cterm=NONE             ctermbg=71    ctermfg=16
hi DiffDelete             cterm=NONE             ctermbg=124   ctermfg=16
hi DiffChange             cterm=NONE             ctermbg=68    ctermfg=16
hi DiffText               cterm=NONE             ctermbg=117   ctermfg=16
hi Directory              cterm=NONE             ctermbg=234   ctermfg=33
hi ErrorMsg               cterm=bold             ctermbg=NONE  ctermfg=203
hi FoldColumn             cterm=bold             ctermbg=239   ctermfg=66
hi Folded                 cterm=NONE             ctermbg=16    ctermfg=60
hi IncSearch              cterm=bold             ctermbg=202   ctermfg=231
hi LineNr                 cterm=NONE             ctermbg=237   ctermfg=102
hi MatchParen             cterm=bold             ctermbg=NONE  ctermfg=226
hi ModeMsg                cterm=bold             ctermbg=NONE  ctermfg=145
hi MoreMsg                cterm=bold             ctermbg=234   ctermfg=29
hi NonText                cterm=NONE             ctermbg=NONE  ctermfg=59
hi Pmenu                  cterm=NONE             ctermbg=238   ctermfg=231
hi PmenuSbar              cterm=NONE             ctermbg=250   ctermfg=fg
hi PmenuSel               cterm=NONE             ctermbg=149   ctermfg=16
hi Question               cterm=bold             ctermbg=NONE  ctermfg=46
hi Search                 cterm=bold             ctermbg=185   ctermfg=16
hi SignColumn             cterm=NONE             ctermbg=NONE  ctermfg=231
hi SpecialKey             cterm=NONE             ctermbg=NONE  ctermfg=59
hi SpellBad               cterm=undercurl        ctermbg=NONE  ctermfg=196
hi SpellCap               cterm=undercurl        ctermbg=NONE  ctermfg=21
hi SpellLocal             cterm=undercurl        ctermbg=NONE  ctermfg=30
hi SpellRare              cterm=undercurl        ctermbg=NONE  ctermfg=201
hi StatusLine             cterm=bold             ctermbg=101   ctermfg=16
hi StatusLineNC           cterm=NONE             ctermbg=102   ctermfg=16
hi VertSplit              cterm=NONE             ctermbg=102   ctermfg=102
hi TabLine                cterm=bold             ctermbg=102   ctermfg=16
hi TabLineFill            cterm=NONE             ctermbg=102   ctermfg=16
hi TabLineSel             cterm=bold             ctermbg=16    ctermfg=59
hi Title                  cterm=bold             ctermbg=NONE  ctermfg=66
hi Visual                 cterm=NONE             ctermbg=67    ctermfg=16
hi WarningMsg             cterm=NONE             ctermbg=234   ctermfg=208
hi WildMenu               cterm=NONE             ctermbg=116   ctermfg=16
hi ExtraWhitespace        cterm=NONE             ctermbg=66    ctermfg=fg

hi Comment                cterm=NONE             ctermbg=NONE  ctermfg=59
hi Boolean                cterm=NONE             ctermbg=NONE  ctermfg=208
hi String                 cterm=NONE             ctermbg=NONE  ctermfg=101
hi Identifier             cterm=NONE             ctermbg=NONE  ctermfg=145
hi Function               cterm=NONE             ctermbg=NONE  ctermfg=230
hi Type                   cterm=NONE             ctermbg=NONE  ctermfg=103
hi Statement              cterm=NONE             ctermbg=NONE  ctermfg=110
hi Keyword                cterm=NONE             ctermbg=NONE  ctermfg=110
hi Constant               cterm=NONE             ctermbg=NONE  ctermfg=208
hi Number                 cterm=NONE             ctermbg=NONE  ctermfg=172
hi Special                cterm=NONE             ctermbg=NONE  ctermfg=64
hi PreProc                cterm=NONE             ctermbg=NONE  ctermfg=66
hi Todo                   cterm=bold,underline   ctermbg=234   ctermfg=96

hi diffOldFile            cterm=NONE             ctermbg=NONE  ctermfg=67
hi diffNewFile            cterm=NONE             ctermbg=NONE  ctermfg=67
hi diffFile               cterm=NONE             ctermbg=NONE  ctermfg=67
hi diffLine               cterm=NONE             ctermbg=NONE  ctermfg=67
hi diffAdded              cterm=NONE             ctermfg=NONE  ctermfg=71
hi diffRemoved            cterm=NONE             ctermfg=NONE  ctermfg=124
hi diffChanged            cterm=NONE             ctermfg=NONE  ctermfg=68
hi link             diffSubname     diffLine
hi link             diffOnly        Constant
hi link             diffIdentical   Constant
hi link             diffDiffer      Constant
hi link             diffBDiffer     Constant
hi link             diffIsA         Constant
hi link             diffNoEOL       Constant
hi link             diffCommon      Constant
hi link             diffComment     Constant

hi pythonClass            cterm=NONE             ctermbg=NONE  ctermfg=fg
hi pythonDecorator        cterm=NONE             ctermbg=NONE  ctermfg=101
hi pythonExClass          cterm=NONE             ctermbg=NONE  ctermfg=95
hi pythonException        cterm=NONE             ctermbg=NONE  ctermfg=110
hi pythonFunc             cterm=NONE             ctermbg=NONE  ctermfg=fg
hi pythonFuncParams       cterm=NONE             ctermbg=NONE  ctermfg=fg
hi pythonKeyword          cterm=NONE             ctermbg=NONE  ctermfg=fg
hi pythonParam            cterm=NONE             ctermbg=NONE  ctermfg=fg
hi pythonRawEscape        cterm=NONE             ctermbg=NONE  ctermfg=fg
hi pythonSuperclasses     cterm=NONE             ctermbg=NONE  ctermfg=fg
hi pythonSync             cterm=NONE             ctermbg=NONE  ctermfg=fg

hi Conceal                cterm=NONE             ctermbg=248   ctermfg=252
hi Error                  cterm=NONE             ctermbg=196   ctermfg=231
hi Ignore                 cterm=NONE             ctermbg=NONE  ctermfg=234
hi InsertModeCursorLine   cterm=NONE             ctermbg=16    ctermfg=fg
hi NormalModeCursorLine   cterm=NONE             ctermbg=235   ctermfg=fg
hi PmenuThumb             cterm=reverse          ctermbg=NONE  ctermfg=fg
hi StatusLineAlert        cterm=NONE             ctermbg=160   ctermfg=231
hi StatusLineUnalert      cterm=NONE             ctermbg=238   ctermfg=144
hi Test                   cterm=NONE             ctermbg=NONE  ctermfg=fg
hi Underlined             cterm=underline        ctermbg=NONE  ctermfg=111
hi VisualNOS              cterm=bold,underline   ctermbg=NONE  ctermfg=fg
hi cCursor                cterm=reverse          ctermbg=NONE  ctermfg=fg
hi iCursor                cterm=NONE             ctermbg=210   ctermfg=16
hi lCursor                cterm=NONE             ctermbg=145   ctermfg=234
hi nCursor                cterm=NONE             ctermbg=NONE  ctermfg=145
hi vCursor                cterm=NONE             ctermbg=201   ctermfg=16