diff --git a/.Xresources b/.Xresources new file mode 100644 index 00000000..d936f9bf --- /dev/null +++ b/.Xresources @@ -0,0 +1,55 @@ +*background: #313131 +*foreground: #d9e6f2 + +! black +*color0: #313131 + +! bright_black +*color8: #5c5c5c + +! red +*color1: #dc6a3d + +! bright_red +*color9: #eaa88e + +! green +*color2: #3ddc6a + +! bright_green +*color10: #8eeaa8 + +! yellow +*color3: #afdc3d + +! bright_yellow +*color11: #d0ea8e + +! blue +*color4: #6a3ddc + +! bright_blue +*color12: #a88eea + +! magenta +*color5: #dc3daf + +! bright_magenta +*color13: #ea8ed0 + +! cyan +*color6: #3dafdc + +! bright_cyan +*color14: #8ed0ea + +! white +*color7: #d6d6d6 + +! bright_white +*color15: #ffffff + + +URxvt.scrollBar: false +URxvt.font: -*-neep-medium-*-semicondensed-*-11-*-*-*-*-*-*-* +URxvt.boldFont: -*-neep-medium-*-semicondensed-*-11-*-*-*-*-*-*-* diff --git a/.mkshrc b/.mkshrc deleted file mode 120000 index e628ae90..00000000 --- a/.mkshrc +++ /dev/null @@ -1 +0,0 @@ -/home/vypr/.mkshrc \ No newline at end of file diff --git a/.mkshrc b/.mkshrc new file mode 100644 index 00000000..7dd5447c --- /dev/null +++ b/.mkshrc @@ -0,0 +1,8 @@ +export PATH=$HOME/.go/bin:$HOME/bin:$PATH +export GOPATH=$HOME/.go +export PS1="─── " +export EDITOR="vim" +alias ls="ls -G" +alias tty-clock="tty-clock -scurDC 7" +alias screenfetch="screenfetch -c 6,15" +alias sprunge="curl -F 'sprunge=<-' http://sprunge.us" diff --git a/.ncmpc b/.ncmpc deleted file mode 120000 index 428a97f3..00000000 --- a/.ncmpc +++ /dev/null @@ -1 +0,0 @@ -/home/vypr/.ncmpc/ \ No newline at end of file diff --git a/.sxhkdrc b/.sxhkdrc deleted file mode 120000 index ff95cfc4..00000000 --- a/.sxhkdrc +++ /dev/null @@ -1 +0,0 @@ -/home/vypr/.sxhkdrc \ No newline at end of file diff --git a/.sxhkdrc b/.sxhkdrc new file mode 100644 index 00000000..79a43517 --- /dev/null +++ b/.sxhkdrc @@ -0,0 +1,52 @@ +super + q + killw $(pfw) + +super + s + urxvt + +super + d + dmenu_run + +super + h + mapw -u $(pfw) + +super + Down + wmv 0 40 $(pfw) +super + Up + wmv 0 -40 $(pfw) +super + Right + wmv 40 0 $(pfw) +super + Left + wmv -40 0 $(pfw) + +super + ctrl + Down + wmv 0 1 $(pfw) +super + ctrl + Up + wmv 0 -1 $(pfw) +super + ctrl + Right + wmv 1 0 $(pfw) +super + ctrl + Left + wmv -1 0 $(pfw) + +super + shift + Right + wrs 40 0 $(pfw) +super + shift + Left + wrs -40 0 $(pfw) +super + shift + Up + wrs 0 -40 $(pfw) +super + shift + Down + wrs 0 40 $(pfw) + +super + shift + ctrl + Right + wrs 1 0 $(pfw) +super + shift + ctrl + Left + wrs -1 0 $(pfw) +super + shift + ctrl + Up + wrs 0 -1 $(pfw) +super + shift + ctrl + Down + wrs 0 1 $(pfw) + +super + u + xbacklight -inc 10 +super + j + xbacklight -dec 10 diff --git a/.vim b/.vim deleted file mode 120000 index c8cec9dc..00000000 --- a/.vim +++ /dev/null @@ -1 +0,0 @@ -/home/vypr/.vim \ No newline at end of file diff --git a/.vim/.netrwhist b/.vim/.netrwhist new file mode 100644 index 00000000..b7f7443b --- /dev/null +++ b/.vim/.netrwhist @@ -0,0 +1,3 @@ +let g:netrw_dirhistmax =10 +let g:netrw_dirhist_cnt =1 +let g:netrw_dirhist_1='/home/vypr/code/swm' diff --git a/.vim/colors/flattr.vim b/.vim/colors/flattr.vim new file mode 100644 index 00000000..28c315f3 --- /dev/null +++ b/.vim/colors/flattr.vim @@ -0,0 +1,100 @@ +hi clear +if version > 580 +hi clear + if exists("syntax_on") + syntax reset + endif +endif +let g:colors_name="flattr" +hi Boolean guifg=#8DEFB5 ctermfg=121 +hi Character guifg=#FFF382 ctermfg=228 +hi ColorColumn guibg=#232526 ctermbg=235 +hi Conditional guifg=#FF8A3C ctermfg=209 gui=bold +hi Conceal guifg=#BA7FFA ctermfg=141 guibg=#1B1D1E ctermbg=234 gui=bold +hi Constant guifg=#A1DD63 ctermfg=149 gui=bold +hi Comment guifg=#5C5C5C ctermfg=59 +hi CursorLine guibg=#293739 ctermbg=236 +hi CursorLineNr guifg=#FFB761 ctermfg=215 gui=none +hi CursorColumn guibg=#293739 ctermbg=236 +hi Cursor guifg=#000000 ctermfg=0 guibg=#F8F8F0 ctermbg=15 +hi Debug guifg=#FF154A ctermfg=197 gui=bold +hi Define guifg=#FF9E56 ctermfg=215 +hi Delimiter guifg=#8F8F8F ctermfg=245 +hi DiffAdd guifg=#000000 ctermfg=0 guibg=#7EC4EF ctermbg=117 +hi DiffChange guifg=#4EDC44 ctermfg=77 guibg=#4C4745 ctermbg=238 +hi DiffDelete guifg=#FF311D ctermfg=202 guibg=#4F4F4F ctermbg=239 +hi DiffText guibg=#4C4745 ctermbg=238 gui=italic,bold +hi Directory guifg=#45E22E ctermfg=76 gui=bold +hi Error guifg=#E6DB74 ctermfg=186 guibg=#555555 ctermbg=240 +hi ErrorMsg guifg=#F94226 ctermfg=202 guibg=#232526 ctermbg=235 gui=bold +hi Exception guifg=#8ABD25 ctermfg=106 gui=bold +hi Float guifg=#ECE352 ctermfg=221 +hi FoldColumn guifg=#465457 ctermfg=239 guibg=#000000 ctermbg=234 +hi Folded guifg=#465457 ctermfg=239 guibg=#000000 ctermbg=234 +hi Function guifg=#FFB792 ctermfg=216 +hi helpExample guifg=#65AE8D ctermfg=79 +hi iCursor guifg=#000000 ctermfg=0 guibg=#F8F8F0 ctermbg=15 +hi Identifier guifg=#F9A33D ctermfg=215 +hi Ignore guifg=#656565 ctermfg=241 guibg=bg +hi IncSearch guifg=#DCCA2D ctermfg=184 guibg=#000000 ctermbg=234 +hi Keyword guifg=#78D3F4 ctermfg=117 gui=bold +hi Label guifg=#FFD554 ctermfg=221 gui=none +hi LineNr guifg=#465457 ctermfg=239 guibg=#232526 ctermbg=235 +hi Macro guifg=#CF8BA8 ctermfg=175 gui=italic +hi MatchParen guifg=#000000 ctermfg=0 guibg=#FFAE4F ctermbg=215 gui=bold +hi ModeMsg guifg=#3DFBA5 ctermfg=85 +hi MoreMsg guifg=#8EFCCD ctermfg=122 +hi NonText guifg=#465457 ctermfg=239 +hi Normal guifg=#E5E5E5 ctermfg=250 guibg=#1B1D1E ctermbg=0 +hi Number guifg=#8DEFB5 ctermfg=121 +hi Operator guifg=#F92672 ctermfg=197 +" complete menu +hi Pmenu guifg=#66D9EF ctermfg=81 guibg=#000000 ctermbg=234 +hi PmenuSel guibg=#808080 ctermbg=236 +hi PmenuSbar guibg=#080808 ctermbg=0 +hi PmenuThumb guifg=#66D9EF ctermfg=81 +hi PreCondit guifg=#C6F961 ctermfg=191 gui=bold +hi PreProc guifg=#1DFFB0 ctermfg=49 +hi Question guifg=#8D8FF8 ctermfg=105 +hi Repeat guifg=#FF7499 ctermfg=210 gui=bold +hi Search guifg=#000000 ctermfg=0 guibg=#F3C82F ctermbg=220 +" marks +hi SignColumn guifg=#C2FF46 ctermfg=155 guibg=#232526 ctermbg=235 +hi Special guifg=#94DBE9 ctermfg=116 guibg=bg gui=italic +hi SpecialChar guifg=#85D99A ctermfg=114 gui=bold +hi SpecialComment guifg=#6A6E6F ctermfg=242 gui=bold +hi SpecialKey guifg=#D466EF ctermfg=171 gui=italic +if has("spell") + hi SpellBad guisp=#FF976D gui=undercurl + hi SpellCap guisp=#9999FD gui=undercurl + hi SpellLocal guisp=#5CD8F5 gui=undercurl + hi SpellRare guisp=#E5CBCB gui=undercurl +endif +hi Statement guifg=#61D1FD ctermfg=81 gui=bold +hi StorageClass guifg=#ECA756 ctermfg=215 gui=italic +hi String guifg=#FFF382 ctermfg=228 +hi Structure guifg=#7CC3F6 ctermfg=111 +hi Tabline guifg=#000000 ctermfg=016 guibg=#888888 ctermbg=14 +hi Tag guifg=#F7547C ctermfg=204 gui=italic +hi Title guifg=#ef5939 ctermfg=203 +hi Todo guifg=#E962FB ctermfg=171 guibg=bg ctermbg=0 gui=bold +hi Typedef guifg=#F6D94B ctermfg=221 +hi Type guifg=#BEEF66 ctermfg=155 gui=none +hi Underlined guifg=#808080 ctermfg=244 gui=underline +hi VertSplit guifg=#808080 ctermfg=244 guibg=#080808 ctermbg=0 gui=bold +hi VisualNOS guibg=#403D3D ctermbg=237 +hi Visual guibg=#403D3D ctermbg=237 +hi WarningMsg guifg=#FF914C ctermfg=209 guibg=#333333 ctermbg=236 gui=bold +hi WildMenu guifg=#ABBAFF ctermfg=147 guibg=#000000 ctermbg=234 +" for TagHighlight +hi Class guifg=#18E28D ctermfg=42 +hi DefinedName guifg=#838ED7 ctermfg=104 +hi Enumerator guifg=#F5A281 ctermfg=216 +hi EnumeratorName guifg=#FD6161 ctermfg=203 +hi Member guifg=#66C1FF ctermfg=75 +hi Structure guifg=#90B4B7 ctermfg=109 +hi Union guifg=#F1C40F ctermfg=220 +hi GlobalConstant guifg=#16A085 ctermfg=36 +hi GlobalVariable guifg=#1ABC9C ctermfg=37 +hi LocalVariable guifg=#2ECC71 ctermfg=41 +set background=dark diff --git a/.vim/colors/jellybeans.vim b/.vim/colors/jellybeans.vim new file mode 100644 index 00000000..21e7dbe1 --- /dev/null +++ b/.vim/colors/jellybeans.vim @@ -0,0 +1,551 @@ +" Vim color file +" +" " __ _ _ _ " +" " \ \ ___| | |_ _| |__ ___ __ _ _ __ ___ " +" " \ \/ _ \ | | | | | _ \ / _ \/ _ | _ \/ __| " +" " /\_/ / __/ | | |_| | |_| | __/ |_| | | | \__ \ " +" " \___/ \___|_|_|\__ |____/ \___|\____|_| |_|___/ " +" " \___/ " +" +" "A colorful, dark color scheme for Vim." +" +" File: jellybeans.vim +" URL: github.com/nanotech/jellybeans.vim +" Scripts URL: vim.org/scripts/script.php?script_id=2555 +" Maintainer: NanoTech (nanotech.nanotechcorp.net) +" Version: 1.6~git +" Last Change: January 15th, 2012 +" License: MIT +" Contributors: Daniel Herbert (pocketninja) +" Henry So, Jr. +" David Liang +" Rich Healey (richo) +" Andrew Wong (w0ng) +" +" Copyright (c) 2009-2012 NanoTech +" +" Permission is hereby granted, free of charge, to any per‐ +" son obtaining a copy of this software and associated doc‐ +" umentation files (the “Software”), to deal in the Soft‐ +" ware without restriction, including without limitation +" the rights to use, copy, modify, merge, publish, distrib‐ +" ute, sublicense, and/or sell copies of the Software, and +" to permit persons to whom the Software is furnished to do +" so, subject to the following conditions: +" +" The above copyright notice and this permission notice +" shall be included in all copies or substantial portions +" of the Software. +" +" THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY +" KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO +" THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICU‐ +" LAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +" AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CON‐ +" TRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON‐ +" NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +" THE SOFTWARE. + +set background=dark + +hi clear + +if exists("syntax_on") + syntax reset +endif + +let colors_name = "jellybeans" + +if has("gui_running") || &t_Co == 88 || &t_Co == 256 + let s:low_color = 0 +else + let s:low_color = 1 +endif + +" Color approximation functions by Henry So, Jr. and David Liang {{{ +" Added to jellybeans.vim by Daniel Herbert + +" returns an approximate grey index for the given grey level +fun! s:grey_number(x) + if &t_Co == 88 + if a:x < 23 + return 0 + elseif a:x < 69 + return 1 + elseif a:x < 103 + return 2 + elseif a:x < 127 + return 3 + elseif a:x < 150 + return 4 + elseif a:x < 173 + return 5 + elseif a:x < 196 + return 6 + elseif a:x < 219 + return 7 + elseif a:x < 243 + return 8 + else + return 9 + endif + else + if a:x < 14 + return 0 + else + let l:n = (a:x - 8) / 10 + let l:m = (a:x - 8) % 10 + if l:m < 5 + return l:n + else + return l:n + 1 + endif + endif + endif +endfun + +" returns the actual grey level represented by the grey index +fun! s:grey_level(n) + if &t_Co == 88 + if a:n == 0 + return 0 + elseif a:n == 1 + return 46 + elseif a:n == 2 + return 92 + elseif a:n == 3 + return 115 + elseif a:n == 4 + return 139 + elseif a:n == 5 + return 162 + elseif a:n == 6 + return 185 + elseif a:n == 7 + return 208 + elseif a:n == 8 + return 231 + else + return 255 + endif + else + if a:n == 0 + return 0 + else + return 8 + (a:n * 10) + endif + endif +endfun + +" returns the palette index for the given grey index +fun! s:grey_color(n) + if &t_Co == 88 + if a:n == 0 + return 16 + elseif a:n == 9 + return 79 + else + return 79 + a:n + endif + else + if a:n == 0 + return 16 + elseif a:n == 25 + return 231 + else + return 231 + a:n + endif + endif +endfun + +" returns an approximate color index for the given color level +fun! s:rgb_number(x) + if &t_Co == 88 + if a:x < 69 + return 0 + elseif a:x < 172 + return 1 + elseif a:x < 230 + return 2 + else + return 3 + endif + else + if a:x < 75 + return 0 + else + let l:n = (a:x - 55) / 40 + let l:m = (a:x - 55) % 40 + if l:m < 20 + return l:n + else + return l:n + 1 + endif + endif + endif +endfun + +" returns the actual color level for the given color index +fun! s:rgb_level(n) + if &t_Co == 88 + if a:n == 0 + return 0 + elseif a:n == 1 + return 139 + elseif a:n == 2 + return 205 + else + return 255 + endif + else + if a:n == 0 + return 0 + else + return 55 + (a:n * 40) + endif + endif +endfun + +" returns the palette index for the given R/G/B color indices +fun! s:rgb_color(x, y, z) + if &t_Co == 88 + return 16 + (a:x * 16) + (a:y * 4) + a:z + else + return 16 + (a:x * 36) + (a:y * 6) + a:z + endif +endfun + +" returns the palette index to approximate the given R/G/B color levels +fun! s:color(r, g, b) + " get the closest grey + let l:gx = s:grey_number(a:r) + let l:gy = s:grey_number(a:g) + let l:gz = s:grey_number(a:b) + + " get the closest color + let l:x = s:rgb_number(a:r) + let l:y = s:rgb_number(a:g) + let l:z = s:rgb_number(a:b) + + if l:gx == l:gy && l:gy == l:gz + " there are two possibilities + let l:dgr = s:grey_level(l:gx) - a:r + let l:dgg = s:grey_level(l:gy) - a:g + let l:dgb = s:grey_level(l:gz) - a:b + let l:dgrey = (l:dgr * l:dgr) + (l:dgg * l:dgg) + (l:dgb * l:dgb) + let l:dr = s:rgb_level(l:gx) - a:r + let l:dg = s:rgb_level(l:gy) - a:g + let l:db = s:rgb_level(l:gz) - a:b + let l:drgb = (l:dr * l:dr) + (l:dg * l:dg) + (l:db * l:db) + if l:dgrey < l:drgb + " use the grey + return s:grey_color(l:gx) + else + " use the color + return s:rgb_color(l:x, l:y, l:z) + endif + else + " only one possibility + return s:rgb_color(l:x, l:y, l:z) + endif +endfun + +" returns the palette index to approximate the 'rrggbb' hex string +fun! s:rgb(rgb) + let l:r = ("0x" . strpart(a:rgb, 0, 2)) + 0 + let l:g = ("0x" . strpart(a:rgb, 2, 2)) + 0 + let l:b = ("0x" . strpart(a:rgb, 4, 2)) + 0 + return s:color(l:r, l:g, l:b) +endfun + +" sets the highlighting for the given group +fun! s:X(group, fg, bg, attr, lcfg, lcbg) + if s:low_color + let l:fge = empty(a:lcfg) + let l:bge = empty(a:lcbg) + + if !l:fge && !l:bge + exec "hi ".a:group." ctermfg=".a:lcfg." ctermbg=".a:lcbg + elseif !l:fge && l:bge + exec "hi ".a:group." ctermfg=".a:lcfg." ctermbg=NONE" + elseif l:fge && !l:bge + exec "hi ".a:group." ctermfg=NONE ctermbg=".a:lcbg + endif + else + let l:fge = empty(a:fg) + let l:bge = empty(a:bg) + + if !l:fge && !l:bge + exec "hi ".a:group." guifg=#".a:fg." guibg=#".a:bg." ctermfg=".s:rgb(a:fg)." ctermbg=".s:rgb(a:bg) + elseif !l:fge && l:bge + exec "hi ".a:group." guifg=#".a:fg." guibg=NONE ctermfg=".s:rgb(a:fg)." ctermbg=NONE" + elseif l:fge && !l:bge + exec "hi ".a:group." guifg=NONE guibg=#".a:bg." ctermfg=NONE ctermbg=".s:rgb(a:bg) + endif + endif + + if a:attr == "" + exec "hi ".a:group." gui=none cterm=none" + else + let l:noitalic = join(filter(split(a:attr, ","), "v:val !=? 'italic'"), ",") + if empty(l:noitalic) + let l:noitalic = "none" + endif + exec "hi ".a:group." gui=".a:attr." cterm=".l:noitalic + endif +endfun +" }}} + +if !exists("g:jellybeans_background_color") + let g:jellybeans_background_color = "151515" +end + +call s:X("Normal","e8e8d3",g:jellybeans_background_color,"","White","") +set background=dark + +if !exists("g:jellybeans_use_lowcolor_black") || g:jellybeans_use_lowcolor_black + let s:termBlack = "Black" +else + let s:termBlack = "Grey" +endif + +if version >= 700 + call s:X("CursorLine","","1c1c1c","","",s:termBlack) + call s:X("CursorColumn","","1c1c1c","","",s:termBlack) + call s:X("MatchParen","ffffff","556779","bold","","DarkCyan") + + call s:X("TabLine","000000","b0b8c0","italic","",s:termBlack) + call s:X("TabLineFill","9098a0","","","",s:termBlack) + call s:X("TabLineSel","000000","f0f0f0","italic,bold",s:termBlack,"White") + + " Auto-completion + call s:X("Pmenu","ffffff","606060","","White",s:termBlack) + call s:X("PmenuSel","101010","eeeeee","",s:termBlack,"White") +endif + +call s:X("Visual","","404040","","",s:termBlack) +call s:X("Cursor",g:jellybeans_background_color,"b0d0f0","","","") + +call s:X("LineNr","605958",g:jellybeans_background_color,"none",s:termBlack,"") +call s:X("CursorLineNr","ccc5c4","","none","White","") +call s:X("Comment","888888","","italic","Grey","") +call s:X("Todo","c7c7c7","","bold","White",s:termBlack) + +call s:X("StatusLine","000000","dddddd","italic","","White") +call s:X("StatusLineNC","ffffff","403c41","italic","White","Black") +call s:X("VertSplit","777777","403c41","",s:termBlack,s:termBlack) +call s:X("WildMenu","f0a0c0","302028","","Magenta","") + +call s:X("Folded","a0a8b0","384048","italic",s:termBlack,"") +call s:X("FoldColumn","535D66","1f1f1f","","",s:termBlack) +call s:X("SignColumn","777777","333333","","",s:termBlack) +call s:X("ColorColumn","","000000","","",s:termBlack) + +call s:X("Title","70b950","","bold","Green","") + +call s:X("Constant","cf6a4c","","","Red","") +call s:X("Special","799d6a","","","Green","") +call s:X("Delimiter","668799","","","Grey","") + +call s:X("String","99ad6a","","","Green","") +call s:X("StringDelimiter","556633","","","DarkGreen","") + +call s:X("Identifier","c6b6ee","","","LightCyan","") +call s:X("Structure","8fbfdc","","","LightCyan","") +call s:X("Function","fad07a","","","Yellow","") +call s:X("Statement","8197bf","","","DarkBlue","") +call s:X("PreProc","8fbfdc","","","LightBlue","") + +hi! link Operator Structure + +call s:X("Type","ffb964","","","Yellow","") +call s:X("NonText","606060",g:jellybeans_background_color,"",s:termBlack,"") + +call s:X("SpecialKey","444444","1c1c1c","",s:termBlack,"") + +call s:X("Search","f0a0c0","302028","underline","Magenta","") + +call s:X("Directory","dad085","","","Yellow","") +call s:X("ErrorMsg","","902020","","","DarkRed") +hi! link Error ErrorMsg +hi! link MoreMsg Special +call s:X("Question","65C254","","","Green","") + + +" Spell Checking + +call s:X("SpellBad","","902020","underline","","DarkRed") +call s:X("SpellCap","","0000df","underline","","Blue") +call s:X("SpellRare","","540063","underline","","DarkMagenta") +call s:X("SpellLocal","","2D7067","underline","","Green") + +" Diff + +hi! link diffRemoved Constant +hi! link diffAdded String + +" VimDiff + +call s:X("DiffAdd","D2EBBE","437019","","White","DarkGreen") +call s:X("DiffDelete","40000A","700009","","DarkRed","DarkRed") +call s:X("DiffChange","","2B5B77","","White","DarkBlue") +call s:X("DiffText","8fbfdc","000000","reverse","Yellow","") + +" PHP + +hi! link phpFunctions Function +call s:X("StorageClass","c59f6f","","","Red","") +hi! link phpSuperglobal Identifier +hi! link phpQuoteSingle StringDelimiter +hi! link phpQuoteDouble StringDelimiter +hi! link phpBoolean Constant +hi! link phpNull Constant +hi! link phpArrayPair Operator +hi! link phpOperator Normal +hi! link phpRelation Normal +hi! link phpVarSelector Identifier + +" Python + +hi! link pythonOperator Statement + +" Ruby + +hi! link rubySharpBang Comment +call s:X("rubyClass","447799","","","DarkBlue","") +call s:X("rubyIdentifier","c6b6fe","","","Cyan","") +hi! link rubyConstant Type +hi! link rubyFunction Function + +call s:X("rubyInstanceVariable","c6b6fe","","","Cyan","") +call s:X("rubySymbol","7697d6","","","Blue","") +hi! link rubyGlobalVariable rubyInstanceVariable +hi! link rubyModule rubyClass +call s:X("rubyControl","7597c6","","","Blue","") + +hi! link rubyString String +hi! link rubyStringDelimiter StringDelimiter +hi! link rubyInterpolationDelimiter Identifier + +call s:X("rubyRegexpDelimiter","540063","","","Magenta","") +call s:X("rubyRegexp","dd0093","","","DarkMagenta","") +call s:X("rubyRegexpSpecial","a40073","","","Magenta","") + +call s:X("rubyPredefinedIdentifier","de5577","","","Red","") + +" Erlang + +hi! link erlangAtom rubySymbol +hi! link erlangBIF rubyPredefinedIdentifier +hi! link erlangFunction rubyPredefinedIdentifier +hi! link erlangDirective Statement +hi! link erlangNode Identifier + +" JavaScript + +hi! link javaScriptValue Constant +hi! link javaScriptRegexpString rubyRegexp + +" CoffeeScript + +hi! link coffeeRegExp javaScriptRegexpString + +" Lua + +hi! link luaOperator Conditional + +" C + +hi! link cFormat Identifier +hi! link cOperator Constant + +" Objective-C/Cocoa + +hi! link objcClass Type +hi! link cocoaClass objcClass +hi! link objcSubclass objcClass +hi! link objcSuperclass objcClass +hi! link objcDirective rubyClass +hi! link objcStatement Constant +hi! link cocoaFunction Function +hi! link objcMethodName Identifier +hi! link objcMethodArg Normal +hi! link objcMessageName Identifier + +" Vimscript + +hi! link vimOper Normal + +" Debugger.vim + +call s:X("DbgCurrent","DEEBFE","345FA8","","White","DarkBlue") +call s:X("DbgBreakPt","","4F0037","","","DarkMagenta") + +" vim-indent-guides + +if !exists("g:indent_guides_auto_colors") + let g:indent_guides_auto_colors = 0 +endif +call s:X("IndentGuidesOdd","","232323","","","") +call s:X("IndentGuidesEven","","1b1b1b","","","") + +" Plugins, etc. + +hi! link TagListFileName Directory +call s:X("PreciseJumpTarget","B9ED67","405026","","White","Green") + +if !exists("g:jellybeans_background_color_256") + let g:jellybeans_background_color_256=233 +end +" Manual overrides for 256-color terminals. Dark colors auto-map badly. +if !s:low_color + hi StatusLineNC ctermbg=235 + hi Folded ctermbg=236 + hi FoldColumn ctermbg=234 + hi SignColumn ctermbg=236 + hi CursorColumn ctermbg=234 + hi CursorLine ctermbg=234 + hi SpecialKey ctermbg=234 + exec "hi NonText ctermbg=".g:jellybeans_background_color_256 + exec "hi LineNr ctermbg=".g:jellybeans_background_color_256 + hi DiffText ctermfg=81 + exec "hi Normal ctermbg=".g:jellybeans_background_color_256 + hi DbgBreakPt ctermbg=53 + hi IndentGuidesOdd ctermbg=235 + hi IndentGuidesEven ctermbg=234 +endif + +if exists("g:jellybeans_overrides") + fun! s:load_colors(defs) + for [l:group, l:v] in items(a:defs) + call s:X(l:group, get(l:v, 'guifg', ''), get(l:v, 'guibg', ''), + \ get(l:v, 'attr', ''), + \ get(l:v, 'ctermfg', ''), get(l:v, 'ctermbg', '')) + if !s:low_color + for l:prop in ['ctermfg', 'ctermbg'] + let l:override_key = '256'.l:prop + if has_key(l:v, l:override_key) + exec "hi ".l:group." ".l:prop."=".l:v[l:override_key] + endif + endfor + endif + unlet l:group + unlet l:v + endfor + endfun + call s:load_colors(g:jellybeans_overrides) + delf s:load_colors +endif + +" delete functions {{{ +delf s:X +delf s:rgb +delf s:color +delf s:rgb_color +delf s:rgb_level +delf s:rgb_number +delf s:grey_color +delf s:grey_level +delf s:grey_number +" }}} diff --git a/.vim/colors/molokai.vim b/.vim/colors/molokai.vim new file mode 100644 index 00000000..6d970539 --- /dev/null +++ b/.vim/colors/molokai.vim @@ -0,0 +1,276 @@ +" Vim color file +" +" Author: Tomas Restrepo +" https://github.com/tomasr/molokai +" +" Note: Based on the Monokai theme for TextMate +" by Wimer Hazenberg and its darker variant +" by Hamish Stuart Macpherson +" + +hi clear + +if version > 580 + " no guarantees for version 5.8 and below, but this makes it stop + " complaining + hi clear + if exists("syntax_on") + syntax reset + endif +endif +let g:colors_name="molokai" + +if exists("g:molokai_original") + let s:molokai_original = g:molokai_original +else + let s:molokai_original = 0 +endif + + +hi Boolean guifg=#AE81FF +hi Character guifg=#E6DB74 +hi Number guifg=#AE81FF +hi String guifg=#E6DB74 +hi Conditional guifg=#F92672 gui=bold +hi Constant guifg=#AE81FF gui=bold +hi Cursor guifg=#000000 guibg=#F8F8F0 +hi iCursor guifg=#000000 guibg=#F8F8F0 +hi Debug guifg=#BCA3A3 gui=bold +hi Define guifg=#66D9EF +hi Delimiter guifg=#8F8F8F +hi DiffAdd guibg=#13354A +hi DiffChange guifg=#89807D guibg=#4C4745 +hi DiffDelete guifg=#960050 guibg=#1E0010 +hi DiffText guibg=#4C4745 gui=italic,bold + +hi Directory guifg=#A6E22E gui=bold +hi Error guifg=#E6DB74 guibg=#1E0010 +hi ErrorMsg guifg=#F92672 guibg=#232526 gui=bold +hi Exception guifg=#A6E22E gui=bold +hi Float guifg=#AE81FF +hi FoldColumn guifg=#465457 guibg=#000000 +hi Folded guifg=#465457 guibg=#000000 +hi Function guifg=#A6E22E +hi Identifier guifg=#FD971F +hi Ignore guifg=#808080 guibg=bg +hi IncSearch guifg=#C4BE89 guibg=#000000 + +hi Keyword guifg=#F92672 gui=bold +hi Label guifg=#E6DB74 gui=none +hi Macro guifg=#C4BE89 gui=italic +hi SpecialKey guifg=#66D9EF gui=italic + +hi MatchParen guifg=#000000 guibg=#FD971F gui=bold +hi ModeMsg guifg=#E6DB74 +hi MoreMsg guifg=#E6DB74 +hi Operator guifg=#F92672 + +" complete menu +hi Pmenu guifg=#66D9EF guibg=#000000 +hi PmenuSel guibg=#808080 +hi PmenuSbar guibg=#080808 +hi PmenuThumb guifg=#66D9EF + +hi PreCondit guifg=#A6E22E gui=bold +hi PreProc guifg=#A6E22E +hi Question guifg=#66D9EF +hi Repeat guifg=#F92672 gui=bold +hi Search guifg=#000000 guibg=#FFE792 +" marks +hi SignColumn guifg=#A6E22E guibg=#232526 +hi SpecialChar guifg=#F92672 gui=bold +hi SpecialComment guifg=#7E8E91 gui=bold +hi Special guifg=#66D9EF guibg=bg gui=italic +if has("spell") + hi SpellBad guisp=#FF0000 gui=undercurl + hi SpellCap guisp=#7070F0 gui=undercurl + hi SpellLocal guisp=#70F0F0 gui=undercurl + hi SpellRare guisp=#FFFFFF gui=undercurl +endif +hi Statement guifg=#F92672 gui=bold +hi StatusLine guifg=#455354 guibg=fg +hi StatusLineNC guifg=#808080 guibg=#080808 +hi StorageClass guifg=#FD971F gui=italic +hi Structure guifg=#66D9EF +hi Tag guifg=#F92672 gui=italic +hi Title guifg=#ef5939 +hi Todo guifg=#FFFFFF guibg=bg gui=bold + +hi Typedef guifg=#66D9EF +hi Type guifg=#66D9EF gui=none +hi Underlined guifg=#808080 gui=underline + +hi VertSplit guifg=#808080 guibg=#080808 gui=bold +hi VisualNOS guibg=#403D3D +hi Visual guibg=#403D3D +hi WarningMsg guifg=#FFFFFF guibg=#333333 gui=bold +hi WildMenu guifg=#66D9EF guibg=#000000 + +hi TabLineFill guifg=#1B1D1E guibg=#1B1D1E +hi TabLine guibg=#1B1D1E guifg=#808080 gui=none + +if s:molokai_original == 1 + hi Normal guifg=#F8F8F2 guibg=#272822 + hi Comment guifg=#75715E + hi CursorLine guibg=#3E3D32 + hi CursorLineNr guifg=#FD971F gui=none + hi CursorColumn guibg=#3E3D32 + hi ColorColumn guibg=#3B3A32 + hi LineNr guifg=#BCBCBC guibg=#3B3A32 + hi NonText guifg=#75715E + hi SpecialKey guifg=#75715E +else + hi Normal guifg=#F8F8F2 guibg=#1B1D1E + hi Comment guifg=#7E8E91 + hi CursorLine guibg=#293739 + hi CursorLineNr guifg=#FD971F gui=none + hi CursorColumn guibg=#293739 + hi ColorColumn guibg=#232526 + hi LineNr guifg=#465457 guibg=#232526 + hi NonText guifg=#465457 + hi SpecialKey guifg=#465457 +end + +" +" Support for 256-color terminal +" +if &t_Co > 255 + if s:molokai_original == 1 + hi Normal ctermbg=234 + hi CursorLine ctermbg=235 cterm=none + hi CursorLineNr ctermfg=208 cterm=none + else + hi Normal ctermfg=252 ctermbg=233 + hi CursorLine ctermbg=234 cterm=none + hi CursorLineNr ctermfg=208 cterm=none + endif + hi Boolean ctermfg=135 + hi Character ctermfg=144 + hi Number ctermfg=135 + hi String ctermfg=144 + hi Conditional ctermfg=161 cterm=bold + hi Constant ctermfg=135 cterm=bold + hi Cursor ctermfg=16 ctermbg=253 + hi Debug ctermfg=225 cterm=bold + hi Define ctermfg=81 + hi Delimiter ctermfg=241 + + hi DiffAdd ctermbg=24 + hi DiffChange ctermfg=181 ctermbg=239 + hi DiffDelete ctermfg=162 ctermbg=53 + hi DiffText ctermbg=102 cterm=bold + + hi Directory ctermfg=118 cterm=bold + hi Error ctermfg=219 ctermbg=89 + hi ErrorMsg ctermfg=199 ctermbg=16 cterm=bold + hi Exception ctermfg=118 cterm=bold + hi Float ctermfg=135 + hi FoldColumn ctermfg=67 ctermbg=16 + hi Folded ctermfg=67 ctermbg=16 + hi Function ctermfg=118 + hi Identifier ctermfg=208 cterm=none + hi Ignore ctermfg=244 ctermbg=232 + hi IncSearch ctermfg=193 ctermbg=16 + + hi keyword ctermfg=161 cterm=bold + hi Label ctermfg=229 cterm=none + hi Macro ctermfg=193 + hi SpecialKey ctermfg=81 + + hi MatchParen ctermfg=233 ctermbg=208 cterm=bold + hi ModeMsg ctermfg=229 + hi MoreMsg ctermfg=229 + hi Operator ctermfg=161 + + " complete menu + hi Pmenu ctermfg=81 ctermbg=16 + hi PmenuSel ctermfg=255 ctermbg=242 + hi PmenuSbar ctermbg=232 + hi PmenuThumb ctermfg=81 + + hi PreCondit ctermfg=118 cterm=bold + hi PreProc ctermfg=118 + hi Question ctermfg=81 + hi Repeat ctermfg=161 cterm=bold + hi Search ctermfg=0 ctermbg=222 cterm=NONE + + " marks column + hi SignColumn ctermfg=118 ctermbg=235 + hi SpecialChar ctermfg=161 cterm=bold + hi SpecialComment ctermfg=245 cterm=bold + hi Special ctermfg=81 + if has("spell") + hi SpellBad ctermbg=52 + hi SpellCap ctermbg=17 + hi SpellLocal ctermbg=17 + hi SpellRare ctermfg=none ctermbg=none cterm=reverse + endif + hi Statement ctermfg=161 cterm=bold + hi StatusLine ctermfg=238 ctermbg=253 + hi StatusLineNC ctermfg=244 ctermbg=232 + hi StorageClass ctermfg=208 + hi Structure ctermfg=81 + hi Tag ctermfg=161 + hi Title ctermfg=166 + hi Todo ctermfg=231 ctermbg=232 cterm=bold + + hi Typedef ctermfg=81 + hi Type ctermfg=81 cterm=none + hi Underlined ctermfg=244 cterm=underline + + hi VertSplit ctermfg=244 ctermbg=232 cterm=bold + hi VisualNOS ctermbg=238 + hi Visual ctermbg=235 + hi WarningMsg ctermfg=231 ctermbg=238 cterm=bold + hi WildMenu ctermfg=81 ctermbg=16 + + hi Comment ctermfg=59 + hi CursorColumn ctermbg=236 + hi ColorColumn ctermbg=236 + hi LineNr ctermfg=250 ctermbg=236 + hi NonText ctermfg=59 + + hi SpecialKey ctermfg=59 + + if exists("g:rehash256") && g:rehash256 == 1 + hi Normal ctermfg=252 ctermbg=234 + hi CursorLine ctermbg=236 cterm=none + hi CursorLineNr ctermfg=208 cterm=none + + hi Boolean ctermfg=141 + hi Character ctermfg=222 + hi Number ctermfg=141 + hi String ctermfg=222 + hi Conditional ctermfg=197 cterm=bold + hi Constant ctermfg=141 cterm=bold + + hi DiffDelete ctermfg=125 ctermbg=233 + + hi Directory ctermfg=154 cterm=bold + hi Error ctermfg=222 ctermbg=233 + hi Exception ctermfg=154 cterm=bold + hi Float ctermfg=141 + hi Function ctermfg=154 + hi Identifier ctermfg=208 + + hi Keyword ctermfg=197 cterm=bold + hi Operator ctermfg=197 + hi PreCondit ctermfg=154 cterm=bold + hi PreProc ctermfg=154 + hi Repeat ctermfg=197 cterm=bold + + hi Statement ctermfg=197 cterm=bold + hi Tag ctermfg=197 + hi Title ctermfg=203 + hi Visual ctermbg=238 + + hi Comment ctermfg=244 + hi LineNr ctermfg=239 ctermbg=235 + hi NonText ctermfg=239 + hi SpecialKey ctermfg=239 + endif +end + +" Must be at the end, because of ctermbg=234 bug. +" https://groups.google.com/forum/#!msg/vim_dev/afPqwAFNdrU/nqh6tOM87QUJ +set background=dark diff --git a/.vim/colors/monokai-soda.vim b/.vim/colors/monokai-soda.vim new file mode 100644 index 00000000..e35d6737 --- /dev/null +++ b/.vim/colors/monokai-soda.vim @@ -0,0 +1,107 @@ +" Vim color file +" Converted from Textmate theme Monokai Soda using Coloration v0.3.3 (http://github.com/sickill/coloration) + +set background=dark +highlight clear + +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "Monokai Soda" + +hi Cursor ctermfg=235 ctermbg=231 cterm=NONE guifg=#222222 guibg=#f8f8f0 gui=NONE +hi Visual ctermfg=NONE ctermbg=238 cterm=NONE guifg=NONE guibg=#444444 gui=NONE +hi CursorLine ctermfg=NONE ctermbg=237 cterm=NONE guifg=NONE guibg=#373737 gui=NONE +hi CursorColumn ctermfg=NONE ctermbg=237 cterm=NONE guifg=NONE guibg=#373737 gui=NONE +hi ColorColumn ctermfg=NONE ctermbg=237 cterm=NONE guifg=NONE guibg=#373737 gui=NONE +hi LineNr ctermfg=245 ctermbg=237 cterm=NONE guifg=#8d8d8a guibg=#373737 gui=NONE +hi VertSplit ctermfg=241 ctermbg=241 cterm=NONE guifg=#60605e guibg=#60605e gui=NONE +hi MatchParen ctermfg=197 ctermbg=NONE cterm=underline guifg=#f92672 guibg=NONE gui=underline +hi StatusLine ctermfg=231 ctermbg=241 cterm=bold guifg=#f8f8f2 guibg=#60605e gui=bold +hi StatusLineNC ctermfg=231 ctermbg=241 cterm=NONE guifg=#f8f8f2 guibg=#60605e gui=NONE +hi Pmenu ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE +hi PmenuSel ctermfg=NONE ctermbg=238 cterm=NONE guifg=NONE guibg=#444444 gui=NONE +hi IncSearch ctermfg=235 ctermbg=186 cterm=NONE guifg=#222222 guibg=#e6db74 gui=NONE +hi Search ctermfg=NONE ctermbg=NONE cterm=underline guifg=NONE guibg=NONE gui=underline +hi Directory ctermfg=141 ctermbg=NONE cterm=NONE guifg=#ae81ff guibg=NONE gui=NONE +hi Folded ctermfg=95 ctermbg=235 cterm=NONE guifg=#75715e guibg=#222222 gui=NONE + +hi Normal ctermfg=231 ctermbg=235 cterm=NONE guifg=#f8f8f2 guibg=#222222 gui=NONE +hi Boolean ctermfg=141 ctermbg=NONE cterm=NONE guifg=#ae81ff guibg=NONE gui=NONE +hi Character ctermfg=141 ctermbg=NONE cterm=NONE guifg=#ae81ff guibg=NONE gui=NONE +hi Comment ctermfg=95 ctermbg=NONE cterm=NONE guifg=#75715e guibg=NONE gui=NONE +hi Conditional ctermfg=197 ctermbg=NONE cterm=NONE guifg=#f92672 guibg=NONE gui=NONE +hi Constant ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE +hi Define ctermfg=197 ctermbg=NONE cterm=NONE guifg=#f92672 guibg=NONE gui=NONE +hi DiffAdd ctermfg=231 ctermbg=64 cterm=bold guifg=#f8f8f2 guibg=#45820c gui=bold +hi DiffDelete ctermfg=88 ctermbg=NONE cterm=NONE guifg=#8a0707 guibg=NONE gui=NONE +hi DiffChange ctermfg=231 ctermbg=23 cterm=NONE guifg=#f8f8f2 guibg=#213655 gui=NONE +hi DiffText ctermfg=231 ctermbg=24 cterm=bold guifg=#f8f8f2 guibg=#204a87 gui=bold +hi ErrorMsg ctermfg=231 ctermbg=197 cterm=NONE guifg=#f8f8f0 guibg=#f92672 gui=NONE +hi WarningMsg ctermfg=231 ctermbg=197 cterm=NONE guifg=#f8f8f0 guibg=#f92672 gui=NONE +hi Float ctermfg=141 ctermbg=NONE cterm=NONE guifg=#ae81ff guibg=NONE gui=NONE +hi Function ctermfg=148 ctermbg=NONE cterm=NONE guifg=#a6e22e guibg=NONE gui=NONE +hi Identifier ctermfg=81 ctermbg=NONE cterm=NONE guifg=#66d9ef guibg=NONE gui=italic +hi Keyword ctermfg=197 ctermbg=NONE cterm=NONE guifg=#f92672 guibg=NONE gui=NONE +hi Label ctermfg=186 ctermbg=NONE cterm=NONE guifg=#e6db74 guibg=NONE gui=NONE +hi NonText ctermfg=59 ctermbg=236 cterm=NONE guifg=#3b3a32 guibg=#2d2d2c gui=NONE +hi Number ctermfg=141 ctermbg=NONE cterm=NONE guifg=#ae81ff guibg=NONE gui=NONE +hi Operator ctermfg=197 ctermbg=NONE cterm=NONE guifg=#f92672 guibg=NONE gui=NONE +hi PreProc ctermfg=197 ctermbg=NONE cterm=NONE guifg=#f92672 guibg=NONE gui=NONE +hi Special ctermfg=231 ctermbg=NONE cterm=NONE guifg=#f8f8f2 guibg=NONE gui=NONE +hi SpecialKey ctermfg=59 ctermbg=237 cterm=NONE guifg=#3b3a32 guibg=#373737 gui=NONE +hi Statement ctermfg=197 ctermbg=NONE cterm=NONE guifg=#f92672 guibg=NONE gui=NONE +hi StorageClass ctermfg=81 ctermbg=NONE cterm=NONE guifg=#66d9ef guibg=NONE gui=italic +hi String ctermfg=186 ctermbg=NONE cterm=NONE guifg=#e6db74 guibg=NONE gui=NONE +hi Tag ctermfg=197 ctermbg=NONE cterm=NONE guifg=#f92672 guibg=NONE gui=NONE +hi Title ctermfg=231 ctermbg=NONE cterm=bold guifg=#f8f8f2 guibg=NONE gui=bold +hi Todo ctermfg=95 ctermbg=NONE cterm=inverse,bold guifg=#75715e guibg=NONE gui=inverse,bold +hi Type ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE +hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline guifg=NONE guibg=NONE gui=underline +hi rubyClass ctermfg=197 ctermbg=NONE cterm=NONE guifg=#f92672 guibg=NONE gui=NONE +hi rubyFunction ctermfg=148 ctermbg=NONE cterm=NONE guifg=#a6e22e guibg=NONE gui=NONE +hi rubyInterpolationDelimiter ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE +hi rubySymbol ctermfg=141 ctermbg=NONE cterm=NONE guifg=#ae81ff guibg=NONE gui=NONE +hi rubyConstant ctermfg=81 ctermbg=NONE cterm=NONE guifg=#66d9ef guibg=NONE gui=italic +hi rubyStringDelimiter ctermfg=186 ctermbg=NONE cterm=NONE guifg=#e6db74 guibg=NONE gui=NONE +hi rubyBlockParameter ctermfg=208 ctermbg=NONE cterm=NONE guifg=#fd971f guibg=NONE gui=italic +hi rubyInstanceVariable ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE +hi rubyInclude ctermfg=197 ctermbg=NONE cterm=NONE guifg=#f92672 guibg=NONE gui=NONE +hi rubyGlobalVariable ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE +hi rubyRegexp ctermfg=186 ctermbg=NONE cterm=NONE guifg=#e6db74 guibg=NONE gui=NONE +hi rubyRegexpDelimiter ctermfg=186 ctermbg=NONE cterm=NONE guifg=#e6db74 guibg=NONE gui=NONE +hi rubyEscape ctermfg=141 ctermbg=NONE cterm=NONE guifg=#ae81ff guibg=NONE gui=NONE +hi rubyControl ctermfg=197 ctermbg=NONE cterm=NONE guifg=#f92672 guibg=NONE gui=NONE +hi rubyClassVariable ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE +hi rubyOperator ctermfg=197 ctermbg=NONE cterm=NONE guifg=#f92672 guibg=NONE gui=NONE +hi rubyException ctermfg=197 ctermbg=NONE cterm=NONE guifg=#f92672 guibg=NONE gui=NONE +hi rubyPseudoVariable ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE +hi rubyRailsUserClass ctermfg=81 ctermbg=NONE cterm=NONE guifg=#66d9ef guibg=NONE gui=italic +hi rubyRailsARAssociationMethod ctermfg=81 ctermbg=NONE cterm=NONE guifg=#66d9ef guibg=NONE gui=NONE +hi rubyRailsARMethod ctermfg=81 ctermbg=NONE cterm=NONE guifg=#66d9ef guibg=NONE gui=NONE +hi rubyRailsRenderMethod ctermfg=81 ctermbg=NONE cterm=NONE guifg=#66d9ef guibg=NONE gui=NONE +hi rubyRailsMethod ctermfg=81 ctermbg=NONE cterm=NONE guifg=#66d9ef guibg=NONE gui=NONE +hi erubyDelimiter ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE +hi erubyComment ctermfg=95 ctermbg=NONE cterm=NONE guifg=#75715e guibg=NONE gui=NONE +hi erubyRailsMethod ctermfg=81 ctermbg=NONE cterm=NONE guifg=#66d9ef guibg=NONE gui=NONE +hi htmlTag ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE +hi htmlEndTag ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE +hi htmlTagName ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE +hi htmlArg ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE +hi htmlSpecialChar ctermfg=141 ctermbg=NONE cterm=NONE guifg=#ae81ff guibg=NONE gui=NONE +hi javaScriptFunction ctermfg=81 ctermbg=NONE cterm=NONE guifg=#66d9ef guibg=NONE gui=italic +hi javaScriptRailsFunction ctermfg=81 ctermbg=NONE cterm=NONE guifg=#66d9ef guibg=NONE gui=NONE +hi javaScriptBraces ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE +hi yamlKey ctermfg=197 ctermbg=NONE cterm=NONE guifg=#f92672 guibg=NONE gui=NONE +hi yamlAnchor ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE +hi yamlAlias ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE +hi yamlDocumentHeader ctermfg=186 ctermbg=NONE cterm=NONE guifg=#e6db74 guibg=NONE gui=NONE +hi cssURL ctermfg=208 ctermbg=NONE cterm=NONE guifg=#fd971f guibg=NONE gui=italic +hi cssFunctionName ctermfg=81 ctermbg=NONE cterm=NONE guifg=#66d9ef guibg=NONE gui=NONE +hi cssColor ctermfg=141 ctermbg=NONE cterm=NONE guifg=#ae81ff guibg=NONE gui=NONE +hi cssPseudoClassId ctermfg=148 ctermbg=NONE cterm=NONE guifg=#a6e22e guibg=NONE gui=NONE +hi cssClassName ctermfg=148 ctermbg=NONE cterm=NONE guifg=#a6e22e guibg=NONE gui=NONE +hi cssValueLength ctermfg=141 ctermbg=NONE cterm=NONE guifg=#ae81ff guibg=NONE gui=NONE +hi cssCommonAttr ctermfg=81 ctermbg=NONE cterm=NONE guifg=#66d9ef guibg=NONE gui=NONE +hi cssBraces ctermfg=NONE ctermbg=NONE cterm=NONE guifg=NONE guibg=NONE gui=NONE \ No newline at end of file diff --git a/.vim/plugin/auto-pairs.vim b/.vim/plugin/auto-pairs.vim new file mode 100644 index 00000000..274d8ad6 --- /dev/null +++ b/.vim/plugin/auto-pairs.vim @@ -0,0 +1,527 @@ +" Insert or delete brackets, parens, quotes in pairs. +" Maintainer: JiangMiao +" Contributor: camthompson +" Last Change: 2013-07-13 +" Version: 1.3.2 +" Homepage: http://www.vim.org/scripts/script.php?script_id=3599 +" Repository: https://github.com/jiangmiao/auto-pairs +" License: MIT + +if exists('g:AutoPairsLoaded') || &cp + finish +end +let g:AutoPairsLoaded = 1 + +if !exists('g:AutoPairs') + let g:AutoPairs = {'(':')', '[':']', '{':'}',"'":"'",'"':'"', '`':'`'} +end + +if !exists('g:AutoPairsParens') + let g:AutoPairsParens = {'(':')', '[':']', '{':'}'} +end + +if !exists('g:AutoPairsMapBS') + let g:AutoPairsMapBS = 1 +end + +if !exists('g:AutoPairsMapCR') + let g:AutoPairsMapCR = 1 +end + +if !exists('g:AutoPairsMapSpace') + let g:AutoPairsMapSpace = 1 +end + +if !exists('g:AutoPairsCenterLine') + let g:AutoPairsCenterLine = 1 +end + +if !exists('g:AutoPairsShortcutToggle') + let g:AutoPairsShortcutToggle = '' +end + +if !exists('g:AutoPairsShortcutFastWrap') + let g:AutoPairsShortcutFastWrap = '' +end + +if !exists('g:AutoPairsShortcutJump') + let g:AutoPairsShortcutJump = '' +endif + +" Fly mode will for closed pair to jump to closed pair instead of insert. +" also support AutoPairsBackInsert to insert pairs where jumped. +if !exists('g:AutoPairsFlyMode') + let g:AutoPairsFlyMode = 0 +endif + +" Work with Fly Mode, insert pair where jumped +if !exists('g:AutoPairsShortcutBackInsert') + let g:AutoPairsShortcutBackInsert = '' +endif + +if !exists('g:AutoPairsSmartQuotes') + let g:AutoPairsSmartQuotes = 1 +endif + + +" Will auto generated {']' => '[', ..., '}' => '{'}in initialize. +let g:AutoPairsClosedPairs = {} + + +function! AutoPairsInsert(key) + if !b:autopairs_enabled + return a:key + end + + let line = getline('.') + let pos = col('.') - 1 + let before = strpart(line, 0, pos) + let after = strpart(line, pos) + let next_chars = split(after, '\zs') + let current_char = get(next_chars, 0, '') + let next_char = get(next_chars, 1, '') + let prev_chars = split(before, '\zs') + let prev_char = get(prev_chars, -1, '') + + let eol = 0 + if col('$') - col('.') <= 1 + let eol = 1 + end + + " Ignore auto close if prev character is \ + if prev_char == '\' + return a:key + end + + " The key is difference open-pair, then it means only for ) ] } by default + if !has_key(b:AutoPairs, a:key) + let b:autopairs_saved_pair = [a:key, getpos('.')] + + " Skip the character if current character is the same as input + if current_char == a:key + return "\" + end + + if !g:AutoPairsFlyMode + " Skip the character if next character is space + if current_char == ' ' && next_char == a:key + return "\\" + end + + " Skip the character if closed pair is next character + if current_char == '' + let next_lineno = line('.')+1 + let next_line = getline(nextnonblank(next_lineno)) + let next_char = matchstr(next_line, '\s*\zs.') + if next_char == a:key + return "\e^a" + endif + endif + endif + + " Fly Mode, and the key is closed-pairs, search closed-pair and jump + if g:AutoPairsFlyMode && has_key(b:AutoPairsClosedPairs, a:key) + if search(a:key, 'W') + return "\" + endif + endif + + " Insert directly if the key is not an open key + return a:key + end + + let open = a:key + let close = b:AutoPairs[open] + + if current_char == close && open == close + return "\" + end + + " Ignore auto close ' if follows a word + " MUST after closed check. 'hello|' + if a:key == "'" && prev_char =~ '\v\w' + return a:key + end + + " support for ''' ``` and """ + if open == close + " The key must be ' " ` + let pprev_char = line[col('.')-3] + if pprev_char == open && prev_char == open + " Double pair found + return repeat(a:key, 4) . repeat("\", 3) + end + end + + let quotes_num = 0 + " Ignore comment line for vim file + if &filetype == 'vim' && a:key == '"' + if before =~ '^\s*$' + return a:key + end + if before =~ '^\s*"' + let quotes_num = -1 + end + end + + " Keep quote number is odd. + " Because quotes should be matched in the same line in most of situation + if g:AutoPairsSmartQuotes && open == close + " Remove \\ \" \' + let cleaned_line = substitute(line, '\v(\\.)', '', 'g') + let n = quotes_num + let pos = 0 + while 1 + let pos = stridx(cleaned_line, open, pos) + if pos == -1 + break + end + let n = n + 1 + let pos = pos + 1 + endwhile + if n % 2 == 1 + return a:key + endif + endif + + return open.close."\" +endfunction + +function! AutoPairsDelete() + if !b:autopairs_enabled + return "\" + end + + let line = getline('.') + let pos = col('.') - 1 + let current_char = get(split(strpart(line, pos), '\zs'), 0, '') + let prev_chars = split(strpart(line, 0, pos), '\zs') + let prev_char = get(prev_chars, -1, '') + let pprev_char = get(prev_chars, -2, '') + + if pprev_char == '\' + return "\" + end + + " Delete last two spaces in parens, work with MapSpace + if has_key(b:AutoPairs, pprev_char) && prev_char == ' ' && current_char == ' ' + return "\\" + endif + + " Delete Repeated Pair eg: '''|''' [[|]] {{|}} + if has_key(b:AutoPairs, prev_char) + let times = 0 + let p = -1 + while get(prev_chars, p, '') == prev_char + let p = p - 1 + let times = times + 1 + endwhile + + let close = b:AutoPairs[prev_char] + let left = repeat(prev_char, times) + let right = repeat(close, times) + + let before = strpart(line, pos-times, times) + let after = strpart(line, pos, times) + if left == before && right == after + return repeat("\\", times) + end + end + + + if has_key(b:AutoPairs, prev_char) + let close = b:AutoPairs[prev_char] + if match(line,'^\s*'.close, col('.')-1) != -1 + " Delete (|___) + let space = matchstr(line, '^\s*', col('.')-1) + return "\". repeat("\", len(space)+1) + elseif match(line, '^\s*$', col('.')-1) != -1 + " Delete (|__\n___) + let nline = getline(line('.')+1) + if nline =~ '^\s*'.close + if &filetype == 'vim' && prev_char == '"' + " Keep next line's comment + return "\" + end + + let space = matchstr(nline, '^\s*') + return "\\". repeat("\", len(space)+1) + end + end + end + + return "\" +endfunction + +function! AutoPairsJump() + call search('["\]'')}]','W') +endfunction +" string_chunk cannot use standalone +let s:string_chunk = '\v%(\\\_.|[^\1]|[\r\n]){-}' +let s:ss_pattern = '\v''' . s:string_chunk . '''' +let s:ds_pattern = '\v"' . s:string_chunk . '"' + +func! s:RegexpQuote(str) + return substitute(a:str, '\v[\[\{\(\<\>\)\}\]]', '\\&', 'g') +endf + +func! s:RegexpQuoteInSquare(str) + return substitute(a:str, '\v[\[\]]', '\\&', 'g') +endf + +" Search next open or close pair +func! s:FormatChunk(open, close) + let open = s:RegexpQuote(a:open) + let close = s:RegexpQuote(a:close) + let open2 = s:RegexpQuoteInSquare(a:open) + let close2 = s:RegexpQuoteInSquare(a:close) + if open == close + return '\v'.open.s:string_chunk.close + else + return '\v%(' . s:ss_pattern . '|' . s:ds_pattern . '|' . '[^'.open2.close2.']|[\r\n]' . '){-}(['.open2.close2.'])' + end +endf + +" Fast wrap the word in brackets +function! AutoPairsFastWrap() + let line = getline('.') + let current_char = line[col('.')-1] + let next_char = line[col('.')] + let open_pair_pattern = '\v[({\[''"]' + let at_end = col('.') >= col('$') - 1 + normal x + " Skip blank + if next_char =~ '\v\s' || at_end + call search('\v\S', 'W') + let line = getline('.') + let next_char = line[col('.')-1] + end + + if has_key(b:AutoPairs, next_char) + let followed_open_pair = next_char + let inputed_close_pair = current_char + let followed_close_pair = b:AutoPairs[next_char] + if followed_close_pair != followed_open_pair + " TODO replace system searchpair to skip string and nested pair. + " eg: (|){"hello}world"} will transform to ({"hello})world"} + call searchpair('\V'.followed_open_pair, '', '\V'.followed_close_pair, 'W') + else + call search(s:FormatChunk(followed_open_pair, followed_close_pair), 'We') + end + return "\".inputed_close_pair."\" + else + normal he + return "\".current_char."\" + end +endfunction + +function! AutoPairsMap(key) + " | is special key which separate map command from text + let key = a:key + if key == '|' + let key = '' + end + let escaped_key = substitute(key, "'", "''", 'g') + " use expr will cause search() doesn't work + execute 'inoremap '.key." =AutoPairsInsert('".escaped_key."')" +endfunction + +function! AutoPairsToggle() + if b:autopairs_enabled + let b:autopairs_enabled = 0 + echo 'AutoPairs Disabled.' + else + let b:autopairs_enabled = 1 + echo 'AutoPairs Enabled.' + end + return '' +endfunction + +function! AutoPairsReturn() + if b:autopairs_enabled == 0 + return '' + end + let line = getline('.') + let pline = getline(line('.')-1) + let prev_char = pline[strlen(pline)-1] + let cmd = '' + let cur_char = line[col('.')-1] + if has_key(b:AutoPairs, prev_char) && b:AutoPairs[prev_char] == cur_char + if g:AutoPairsCenterLine && winline() * 3 >= winheight(0) * 2 + " Use \ instead of \cl will cause the placeholder deleted + " incorrect. because zz won't leave Normal mode. + " Use \ is a bit wierd. the character before cursor need to be deleted. + let cmd = " \zz\cl" + end + + " If equalprg has been set, then avoid call = + " https://github.com/jiangmiao/auto-pairs/issues/24 + if &equalprg != '' + return "\O".cmd + endif + + " conflict with javascript and coffee + " javascript need indent new line + " coffeescript forbid indent new line + if &filetype == 'coffeescript' || &filetype == 'coffee' + return "\k==o".cmd + else + return "\=ko".cmd + endif + end + return '' +endfunction + +function! AutoPairsSpace() + let line = getline('.') + let prev_char = line[col('.')-2] + let cmd = '' + let cur_char =line[col('.')-1] + if has_key(g:AutoPairsParens, prev_char) && g:AutoPairsParens[prev_char] == cur_char + let cmd = "\\" + endif + return "\".cmd +endfunction + +function! AutoPairsBackInsert() + if exists('b:autopairs_saved_pair') + let pair = b:autopairs_saved_pair[0] + let pos = b:autopairs_saved_pair[1] + call setpos('.', pos) + return pair + endif + return '' +endfunction + +function! AutoPairsInit() + let b:autopairs_loaded = 1 + let b:autopairs_enabled = 1 + let b:AutoPairsClosedPairs = {} + + if !exists('b:AutoPairs') + let b:AutoPairs = g:AutoPairs + end + + " buffer level map pairs keys + for [open, close] in items(b:AutoPairs) + call AutoPairsMap(open) + if open != close + call AutoPairsMap(close) + end + let b:AutoPairsClosedPairs[close] = open + endfor + + " Still use level mapping for + if g:AutoPairsMapBS + " Use instead of for issue #14 sometimes press BS output strange words + execute 'inoremap =AutoPairsDelete()' + execute 'inoremap =AutoPairsDelete()' + end + + if g:AutoPairsMapSpace + " Try to respect abbreviations on a + let do_abbrev = "" + if v:version == 703 && has("patch489") || v:version > 703 + let do_abbrev = "" + endif + execute 'inoremap '.do_abbrev.'=AutoPairsSpace()' + end + + if g:AutoPairsShortcutFastWrap != '' + execute 'inoremap '.g:AutoPairsShortcutFastWrap.' =AutoPairsFastWrap()' + end + + if g:AutoPairsShortcutBackInsert != '' + execute 'inoremap '.g:AutoPairsShortcutBackInsert.' =AutoPairsBackInsert()' + end + + if g:AutoPairsShortcutToggle != '' + " use to ensure showing the status when toggle + execute 'inoremap '.g:AutoPairsShortcutToggle.' AutoPairsToggle()' + execute 'noremap '.g:AutoPairsShortcutToggle.' :call AutoPairsToggle()' + end + + if g:AutoPairsShortcutJump != '' + execute 'inoremap ' . g:AutoPairsShortcutJump. ' :call AutoPairsJump()a' + execute 'noremap ' . g:AutoPairsShortcutJump. ' :call AutoPairsJump()' + end + +endfunction + +function! s:ExpandMap(map) + let map = a:map + let map = substitute(map, '\(\w\+\)', '\=maparg(submatch(1), "i")', 'g') + return map +endfunction + +function! AutoPairsTryInit() + if exists('b:autopairs_loaded') + return + end + + " for auto-pairs starts with 'a', so the priority is higher than supertab and vim-endwise + " + " vim-endwise doesn't support AutoPairsReturn + " when use AutoPairsReturn will cause isn't expanded + " + " supertab doesn't support AutoPairsReturn + " when use AutoPairsReturn will cause Duplicated + " + " and when load after vim-endwise will cause unexpected endwise inserted. + " so always load AutoPairs at last + + " Buffer level keys mapping + " comptible with other plugin + if g:AutoPairsMapCR + if v:version == 703 && has('patch32') || v:version > 703 + " VIM 7.3 supports advancer maparg which could get info + " then auto-pairs could remap in any case. + let info = maparg('', 'i', 0, 1) + if empty(info) + let old_cr = '' + let is_expr = 0 + else + let old_cr = info['rhs'] + let old_cr = s:ExpandMap(old_cr) + let old_cr = substitute(old_cr, '', '' . info['sid'] . '_', 'g') + let is_expr = info['expr'] + let wrapper_name = 'AutoPairsOldCRWrapper73' + endif + else + " VIM version less than 7.3 + " the mapping's info is lost, so guess it is expr or not, it's + " not accurate. + let old_cr = maparg('', 'i') + if old_cr == '' + let old_cr = '' + let is_expr = 0 + else + let old_cr = s:ExpandMap(old_cr) + " old_cr contain (, I guess the old cr is in expr mode + let is_expr = old_cr =~ '\V(' && toupper(old_cr) !~ '\V' + + " The old_cr start with " it must be in expr mode + let is_expr = is_expr || old_cr =~ '\v^"' + let wrapper_name = 'AutoPairsOldCRWrapper' + end + end + + if old_cr !~ 'AutoPairsReturn' + if is_expr + " remap to `name` to avoid mix expr and non-expr mode + execute 'inoremap