Commits

Cameron Adamez  committed 591fc61

initial commit

  • Participants

Comments (0)

Files changed (16)

File .bash_profile

+export TERM=xterm-color
+export EDITOR=vim
+export CLICOLOR=1
+export LSCOLORS=exfxcxdxbxegedabagacad
+
+function gack()
+{
+find $1 -type f | xargs grep --color=auto -n -i -s $2
+}

File .vim/.netrwhist

+let g:netrw_dirhistmax  =10
+let g:netrw_dirhist_cnt =1
+let g:netrw_dirhist_1='/Users/r622451/Projects/pgh-web/vendor/lib/authorize-net-1.5.2/lib/authorize_net/sim'

File .vim/after/syntax/haml.vim

+" Language:    CoffeeScript
+" Maintainer:  Sven Felix Oberquelle <Svelix.Github@gmail.com>
+" URL:         http://github.com/kchmck/vim-coffee-script
+" License:     WTFPL
+
+" Inherit coffee from html so coffeeComment isn't redefined and given higher
+" priority than hamlInterpolation.
+syn cluster hamlCoffeescript contains=@htmlCoffeeScript
+syn region  hamlCoffeescriptFilter matchgroup=hamlFilter start="^\z(\s*\):coffeescript\s*$" end="^\%(\z1 \| *$\)\@!" contains=@hamlCoffeeScript,hamlInterpolation keepend

File .vim/after/syntax/html.vim

+" Language:    CoffeeScript
+" Maintainer:  Mick Koch <kchmck@gmail.com>
+" URL:         http://github.com/kchmck/vim-coffee-script
+" License:     WTFPL
+
+" Syntax highlighting for text/coffeescript script tags
+syn include @htmlCoffeeScript syntax/coffee.vim
+syn region coffeeScript start=+<script [^>]*type *=[^>]*text/coffeescript[^>]*>+
+\                       end=+</script>+me=s-1 keepend
+\                       contains=@htmlCoffeeScript,htmlScriptTag,@htmlPreproc
+\                       containedin=htmlHead

File .vim/colors/herald.vim

+" Vim color file
+" Name:       herald.vim
+" Author:     Fabio Cevasco <h3rald@h3rald.com>
+" Version:    0.2.2
+" Notes:      Supports 8, 16, 256 and 16,777,216 (RGB) color modes
+
+hi clear
+
+if exists("syntax_on")
+  syntax reset
+endif
+
+let colors_name = "herald"
+
+set background=dark
+
+" Set some syntax-related variables
+let ruby_operators = 1
+
+if has("gui_running")
+
+  " -> Text; Miscellaneous
+  hi Normal         guibg=#1F1F1F guifg=#D0D0D0 gui=none
+  hi SpecialKey     guibg=#1F1F1F guifg=#E783E9 gui=none
+  hi VertSplit      guibg=#1F1F1F guifg=#FFEE68 gui=none
+  hi SignColumn     guibg=#1F1F1F guifg=#BF81FA gui=none
+  hi NonText        guibg=#1F1F1F guifg=#FC6984 gui=none
+  hi Directory      guibg=#1F1F1F guifg=#FFEE68 gui=none 
+  hi Title          guibg=#1F1F1F guifg=#6DF584 gui=bold
+
+  " -> Cursor 
+  hi Cursor         guibg=#FFEE68 guifg=#1F1F1F gui=none
+  hi CursorIM       guibg=#FFEE68 guifg=#1F1F1F gui=none
+  hi CursorColumn   guibg=#000000               gui=none
+  hi CursorLine     guibg=#000000               gui=none
+
+  " -> Folding
+  hi FoldColumn     guibg=#001336 guifg=#003DAD gui=none
+  hi Folded         guibg=#001336 guifg=#003DAD gui=none
+
+  " -> Line info  
+  hi LineNr         guibg=#000000 guifg=#696567 gui=none
+  hi StatusLine     guibg=#000000 guifg=#696567 gui=none
+  hi StatusLineNC   guibg=#25365a guifg=#696567 gui=none
+
+  " -> Messages
+  hi ErrorMsg       guibg=#A32024 guifg=#D0D0D0 gui=none
+  hi Question       guibg=#1F1F1F guifg=#FFA500 gui=none
+  hi WarningMsg     guibg=#FFA500 guifg=#000000 gui=none
+  hi MoreMsg        guibg=#1F1F1F guifg=#FFA500 gui=none
+  hi ModeMsg        guibg=#1F1F1F guifg=#FFA500 gui=none
+
+  " -> Search 
+  hi Search         guibg=#696567 guifg=#FFEE68 gui=none 
+  hi IncSearch      guibg=#696567 guifg=#FFEE68 gui=none
+
+  " -> Diff
+  hi DiffAdd        guibg=#006124 guifg=#ED9000 gui=none
+  hi DiffChange     guibg=#0B294A guifg=#A36000 gui=none
+  hi DiffDelete     guibg=#081F38 guifg=#ED9000 gui=none
+  hi DiffText       guibg=#12457D guifg=#ED9000 gui=underline
+
+  " -> Menu
+  hi Pmenu          guibg=#140100 guifg=#660300 gui=none
+  hi PmenuSel       guibg=#F17A00 guifg=#4C0200 gui=none
+  hi PmenuSbar      guibg=#430300               gui=none
+  hi PmenuThumb     guibg=#720300               gui=none
+  hi PmenuSel       guibg=#F17A00 guifg=#4C0200 gui=none
+
+  " -> Tabs
+  hi TabLine        guibg=#141414 guifg=#696567 gui=none
+  hi TabLineFill    guibg=#000000               gui=none
+  hi TabLineSel     guibg=#1F1F1F guifg=#D0D0D0 gui=none  
+  "
+  " -> Visual Mode
+  hi Visual         guibg=#000000 guifg=#FFB539 gui=none
+  hi VisualNOS      guibg=#000000 guifg=#696567 gui=none
+
+  " -> Code
+  hi Comment        guibg=#1F1F1F guifg=#696567 gui=none
+  hi Constant       guibg=#1F1F1F guifg=#6DF584 gui=none
+  hi String         guibg=#1F1F1F guifg=#FFB539 gui=none
+  hi Error          guibg=#1F1F1F guifg=#FC4234 gui=none
+  hi Identifier     guibg=#1F1F1F guifg=#70BDF1 gui=none
+  hi Function       guibg=#1F1F1F guifg=#90CBF1 gui=none
+  hi Ignore         guibg=#1F1F1F guifg=#1F1F1F gui=none
+  hi MatchParen     guibg=#FFA500 guifg=#1F1F1F gui=none
+  hi PreProc        guibg=#1F1F1F guifg=#BF81FA gui=none
+  hi Special        guibg=#1F1F1F guifg=#FFEE68 gui=none
+  hi Todo           guibg=#1F1F1F guifg=#FC4234 gui=bold
+  hi Underlined     guibg=#1F1F1F guifg=#FC4234 gui=underline
+  hi Statement      guibg=#1F1F1F guifg=#E783E9 gui=none
+  hi Operator       guibg=#1F1F1F guifg=#FC6984 gui=none
+  hi Delimiter      guibg=#1F1F1F guifg=#FC6984 gui=none
+  hi Type           guibg=#1F1F1F guifg=#FFEE68 gui=none
+  hi Exception      guibg=#1F1F1F guifg=#FC4234 gui=none
+
+  " -> HTML-specific
+  hi htmlBold                 guibg=#1F1F1F guifg=#D0D0D0 gui=bold
+  hi htmlBoldItalic           guibg=#1F1F1F guifg=#D0D0D0 gui=bold,italic
+  hi htmlBoldUnderline        guibg=#1F1F1F guifg=#D0D0D0 gui=bold,underline
+  hi htmlBoldUnderlineItalic  guibg=#1F1F1F guifg=#D0D0D0 gui=bold,underline,italic
+  hi htmlItalic               guibg=#1F1F1F guifg=#D0D0D0 gui=italic
+  hi htmlUnderline            guibg=#1F1F1F guifg=#D0D0D0 gui=underline
+  hi htmlUnderlineItalic      guibg=#1F1F1F guifg=#D0D0D0 gui=underline,italic
+
+  " Spellcheck formatting
+  if has("spell")
+    hi SpellBad   guisp=#FC4234 gui=undercurl
+    hi SpellCap   guisp=#70BDF1 gui=undercurl
+    hi SpellLocal guisp=#FFEE68 gui=undercurl  
+    hi SpellRare  guisp=#6DF584 gui=undercurl
+  endif
+
+elseif &t_Co == 256
+
+  " -> Text; Miscellaneous
+  hi Normal         ctermbg=234  ctermfg=252   cterm=none
+  hi SpecialKey     ctermbg=234  ctermfg=176   cterm=none
+  hi VertSplit      ctermbg=234  ctermfg=227   cterm=none
+  hi SignColumn     ctermbg=234  ctermfg=141   cterm=none
+  hi NonText        ctermbg=234  ctermfg=204   cterm=none
+  hi Directory      ctermbg=234  ctermfg=227   cterm=none 
+  hi Title          ctermbg=234  ctermfg=84    cterm=bold
+
+  " -> Cursor 
+  hi Cursor         ctermbg=227  ctermfg=234   cterm=none
+  hi CursorIM       ctermbg=227  ctermfg=234   cterm=none
+  hi CursorColumn   ctermbg=0                  cterm=none
+  hi CursorLine     ctermbg=0                  cterm=none
+
+  " -> Folding
+  hi FoldColumn     ctermbg=234  ctermfg=25    cterm=none
+  hi Folded         ctermbg=234  ctermfg=25    cterm=none
+
+  " -> Line info  
+  hi LineNr         ctermbg=0    ctermfg=241   cterm=none
+  hi StatusLine     ctermbg=0    ctermfg=241   cterm=none
+  hi StatusLineNC   ctermbg=237  ctermfg=241   cterm=none
+
+  " -> Messages
+  hi ErrorMsg       ctermbg=124  ctermfg=252   cterm=none
+  hi Question       ctermbg=234  ctermfg=214   cterm=none
+  hi WarningMsg     ctermbg=214  ctermfg=0     cterm=none
+  hi MoreMsg        ctermbg=234  ctermfg=214   cterm=none
+  hi ModeMsg        ctermbg=234  ctermfg=214   cterm=none
+
+  " -> Search 
+  hi Search         ctermbg=241  ctermfg=227   cterm=none 
+  hi IncSearch      ctermbg=241  ctermfg=227   cterm=none
+
+  " -> Diff
+  hi DiffAdd        ctermbg=22   ctermfg=208   cterm=none
+  hi DiffChange     ctermbg=235  ctermfg=130   cterm=none
+  hi DiffDelete     ctermbg=234  ctermfg=208   cterm=none
+  hi DiffText       ctermbg=24   ctermfg=208   cterm=underline
+
+  " -> Menu
+  hi Pmenu          ctermbg=0    ctermfg=52    cterm=none
+  hi PmenuSel       ctermbg=208  ctermfg=52    cterm=none
+  hi PmenuSbar      ctermbg=52                 cterm=none
+  hi PmenuThumb     ctermbg=52                 cterm=none
+  hi PmenuSel       ctermbg=208  ctermfg=52    cterm=none
+
+  " -> Tabs
+  hi TabLine        ctermbg=233  ctermfg=241   cterm=none
+  hi TabLineFill    ctermbg=0                  cterm=none
+  hi TabLineSel     ctermbg=234  ctermfg=252   cterm=none
+  "
+  " -> Visual Mode
+  hi Visual         ctermbg=0    ctermfg=215   cterm=none 
+  hi VisualNOS      ctermbg=0    ctermfg=241   cterm=none
+
+  " -> Code
+  hi Comment        ctermbg=234  ctermfg=241   cterm=none
+  hi Constant       ctermbg=234  ctermfg=84    cterm=none
+  hi String         ctermbg=234  ctermfg=215   cterm=none
+  hi Error          ctermbg=234  ctermfg=203   cterm=none
+  hi Identifier     ctermbg=234  ctermfg=75    cterm=none
+  hi Function       ctermbg=234  ctermfg=117   cterm=none
+  hi Ignore         ctermbg=234  ctermfg=234   cterm=none
+  hi MatchParen     ctermbg=214  ctermfg=234   cterm=none
+  hi PreProc        ctermbg=234  ctermfg=141   cterm=none
+  hi Special        ctermbg=234  ctermfg=227   cterm=none
+  hi Todo           ctermbg=234  ctermfg=203   cterm=bold
+  hi Underlined     ctermbg=234  ctermfg=203   cterm=underline
+  hi Statement      ctermbg=234  ctermfg=176   cterm=none
+  hi Operator       ctermbg=234  ctermfg=204   cterm=none
+  hi Delimiter      ctermbg=234  ctermfg=204   cterm=none
+  hi Type           ctermbg=234  ctermfg=227   cterm=none
+  hi Exception      ctermbg=234  ctermfg=203   cterm=none 
+
+  " -> HTML-specific
+  hi htmlBold                 ctermbg=234  ctermfg=252   cterm=bold
+  hi htmlBoldItalic           ctermbg=234  ctermfg=252   cterm=bold,italic
+  hi htmlBoldUnderline        ctermbg=234  ctermfg=252   cterm=bold,underline
+  hi htmlBoldUnderlineItalic  ctermbg=234  ctermfg=252   cterm=bold,underline,italic
+  hi htmlItalic               ctermbg=234  ctermfg=252   cterm=italic
+  hi htmlUnderline            ctermbg=234  ctermfg=252   cterm=underline
+  hi htmlUnderlineItalic      ctermbg=234  ctermfg=252   cterm=underline,italic
+
+  " Spellcheck formatting
+  if has("spell")
+    hi SpellBad   ctermbg=234  ctermfg=203   cterm=underline
+    hi SpellCap   ctermbg=234  ctermfg=84    cterm=none
+    hi SpellLocal ctermbg=234  ctermfg=75    cterm=none
+    hi SpellRare  ctermbg=234  ctermfg=227   cterm=none
+  endif
+
+elseif &t_Co == 16
+
+  " -> Text; Miscellaneous
+  hi Normal         ctermbg=8  ctermfg=15 cterm=none
+  hi SpecialKey     ctermbg=8  ctermfg=5  cterm=none
+  hi VertSplit      ctermbg=8  ctermfg=14  cterm=none
+  hi SignColumn     ctermbg=8  ctermfg=5  cterm=none
+  hi NonText        ctermbg=8  ctermfg=4  cterm=none
+  hi Directory      ctermbg=8  ctermfg=14  cterm=none 
+  hi Title          ctermbg=8  ctermfg=10 cterm=bold
+
+  " -> Cursor 
+  hi Cursor         ctermbg=14 ctermfg=8  cterm=none
+  hi CursorIM       ctermbg=14 ctermfg=8  cterm=none
+  hi CursorColumn   ctermbg=0            cterm=none
+  hi CursorLine     ctermbg=0            cterm=none
+
+  " -> Folding
+  hi FoldColumn     ctermbg=0  ctermfg=1  cterm=none
+  hi Folded         ctermbg=0  ctermfg=1  cterm=none
+
+  " -> Line info  
+  hi LineNr         ctermbg=0  ctermfg=7  cterm=none
+  hi StatusLine     ctermbg=0  ctermfg=7  cterm=none
+  hi StatusLineNC   ctermbg=0  ctermfg=7  cterm=none
+
+  " -> Messages
+  hi ErrorMsg       ctermbg=4  ctermfg=7  cterm=none
+  hi Question       ctermbg=8  ctermfg=14 cterm=none
+  hi WarningMsg     ctermbg=14 ctermfg=0  cterm=none
+  hi MoreMsg        ctermbg=8  ctermfg=14 cterm=none
+  hi ModeMsg        ctermbg=8  ctermfg=14 cterm=none
+
+  " -> Search 
+  hi Search         ctermbg=7  ctermfg=14 cterm=none 
+  hi IncSearch      ctermbg=7  ctermfg=14 cterm=none
+
+  " -> Diff
+  hi DiffAdd        ctermbg=0  ctermfg=10 cterm=none
+  hi DiffChange     ctermbg=0  ctermfg=14 cterm=none
+  hi DiffDelete     ctermbg=0  ctermfg=12 cterm=none
+  hi DiffText       ctermbg=1  ctermfg=14 cterm=underline
+
+  " -> Menu
+  hi Pmenu          ctermbg=0  ctermfg=4  cterm=none
+  hi PmenuSel       ctermbg=14 ctermfg=4  cterm=none
+  hi PmenuSbar      ctermbg=0             cterm=none
+  hi PmenuThumb     ctermbg=4             cterm=none
+  hi PmenuSel       ctermbg=14 ctermfg=4  cterm=none
+
+  " -> Tabs
+  hi TabLine        ctermbg=7  ctermfg=0  cterm=none
+  hi TabLineFill    ctermbg=0             cterm=none
+  hi TabLineSel     ctermbg=0  ctermfg=7  cterm=none
+  "
+  " -> Visual Mode
+  hi Visual         ctermbg=0  ctermfg=14 cterm=none
+  hi VisualNOS      ctermbg=0  ctermfg=7  cterm=none
+
+  " -> Code
+  hi Comment        ctermbg=8  ctermfg=7  cterm=none
+  hi Constant       ctermbg=8  ctermfg=10 cterm=none
+  hi String         ctermbg=8  ctermfg=6  cterm=none
+  hi Error          ctermbg=8  ctermfg=4  cterm=none
+  hi Identifier     ctermbg=8  ctermfg=11 cterm=none
+  hi Function       ctermbg=8  ctermfg=11 cterm=none
+  hi Ignore         ctermbg=8  ctermfg=8  cterm=none
+  hi MatchParen     ctermbg=14 ctermfg=8  cterm=none
+  hi PreProc        ctermbg=8  ctermfg=5  cterm=none
+  hi Special        ctermbg=8  ctermfg=14 cterm=none
+  hi Todo           ctermbg=8  ctermfg=12 cterm=bold
+  hi Underlined     ctermbg=8  ctermfg=12 cterm=underline
+  hi Statement      ctermbg=8  ctermfg=13 cterm=none
+  hi Operator       ctermbg=8  ctermfg=4  cterm=none
+  hi Delimiter      ctermbg=8  ctermfg=4 cterm=none
+  hi Type           ctermbg=8  ctermfg=14 cterm=none
+  hi Exception      ctermbg=8  ctermfg=12 cterm=none
+
+  " -> HTML-specific
+  hi htmlBold                  ctermbg=8 ctermfg=7 cterm=bold
+  hi htmlBoldItalic            ctermbg=8 ctermfg=7 cterm=bold,italic
+  hi htmlBoldUnderline         ctermbg=8 ctermfg=7 cterm=bold,underline
+  hi htmlBoldUnderlineItalic   ctermbg=8 ctermfg=7 cterm=bold,underline,italic
+  hi htmlItalic                ctermbg=8 ctermfg=7 cterm=italic
+  hi htmlUnderline             ctermbg=8 ctermfg=7 cterm=underline
+  hi htmlUnderlineItalic       ctermbg=8 ctermfg=7 cterm=underline,italic
+
+  " Spellcheck formatting
+  if has("spell")
+    hi SpellBad   ctermbg=8  ctermfg=4    cterm=underline
+    hi SpellCap   ctermbg=8  ctermfg=10   cterm=none
+    hi SpellLocal ctermbg=8  ctermfg=11   cterm=none
+    hi SpellRare  ctermbg=8  ctermfg=14   cterm=none
+  endif
+
+elseif &t_Co == 8
+
+  " -> Text; Miscellaneous
+  hi Normal         ctermbg=8  ctermfg=7  cterm=none
+  hi SpecialKey     ctermbg=8  ctermfg=5  cterm=none
+  hi VertSplit      ctermbg=8  ctermfg=6  cterm=none
+  hi SignColumn     ctermbg=8  ctermfg=5  cterm=none
+  hi NonText        ctermbg=8  ctermfg=4  cterm=none
+  hi Directory      ctermbg=8  ctermfg=6  cterm=none 
+  hi Title          ctermbg=8  ctermfg=2  cterm=bold
+
+  " -> Cursor 
+  hi Cursor         ctermbg=6  ctermfg=8  cterm=none
+  hi CursorIM       ctermbg=6  ctermfg=8  cterm=none
+  hi CursorColumn   ctermbg=0             cterm=none
+  hi CursorLine     ctermbg=0             cterm=none
+
+  " -> Folding
+  hi FoldColumn     ctermbg=0  ctermfg=1  cterm=none
+  hi Folded         ctermbg=0  ctermfg=1  cterm=none
+
+  " -> Line info  
+  hi LineNr         ctermbg=0  ctermfg=7  cterm=none
+  hi StatusLine     ctermbg=0  ctermfg=7  cterm=none
+  hi StatusLineNC   ctermbg=0  ctermfg=7  cterm=none
+
+  " -> Messages
+  hi ErrorMsg       ctermbg=4  ctermfg=7  cterm=none
+  hi Question       ctermbg=8  ctermfg=6  cterm=none
+  hi WarningMsg     ctermbg=6  ctermfg=0  cterm=none
+  hi MoreMsg        ctermbg=8  ctermfg=6  cterm=none
+  hi ModeMsg        ctermbg=8  ctermfg=6  cterm=none
+
+  " -> Search 
+  hi Search         ctermbg=7  ctermfg=6  cterm=none 
+  hi IncSearch      ctermbg=7  ctermfg=6  cterm=none
+
+  " -> Diff
+  hi DiffAdd        ctermbg=0  ctermfg=2  cterm=none
+  hi DiffChange     ctermbg=0  ctermfg=6  cterm=none
+  hi DiffDelete     ctermbg=0  ctermfg=4  cterm=none
+  hi DiffText       ctermbg=1  ctermfg=6  cterm=underline
+
+  " -> Menu
+  hi Pmenu          ctermbg=0  ctermfg=4  cterm=none
+  hi PmenuSel       ctermbg=6  ctermfg=4  cterm=none
+  hi PmenuSbar      ctermbg=0             cterm=none
+  hi PmenuThumb     ctermbg=4             cterm=none
+  hi PmenuSel       ctermbg=6  ctermfg=4  cterm=none
+
+  " -> Tabs
+  hi TabLine        ctermbg=7  ctermfg=0  cterm=none
+  hi TabLineFill    ctermbg=0             cterm=none
+  hi TabLineSel     ctermbg=0  ctermfg=7  cterm=none
+  "
+  " -> Visual Mode
+  hi Visual         ctermbg=0  ctermfg=6 cterm=none
+  hi VisualNOS      ctermbg=0  ctermfg=7  cterm=none
+
+  " -> Code
+  hi Comment        ctermbg=8  ctermfg=7  cterm=none
+  hi Constant       ctermbg=8  ctermfg=2 cterm=none
+  hi String         ctermbg=8  ctermfg=6  cterm=none
+  hi Error          ctermbg=8  ctermfg=4  cterm=none
+  hi Identifier     ctermbg=8  ctermfg=3 cterm=none
+  hi Function       ctermbg=8  ctermfg=3 cterm=none
+  hi Ignore         ctermbg=8  ctermfg=8  cterm=none
+  hi MatchParen     ctermbg=6  ctermfg=8  cterm=none
+  hi PreProc        ctermbg=8  ctermfg=5  cterm=none
+  hi Special        ctermbg=8  ctermfg=6 cterm=none
+  hi Todo           ctermbg=8  ctermfg=4 cterm=bold
+  hi Underlined     ctermbg=8  ctermfg=4 cterm=underline
+  hi Statement      ctermbg=8  ctermfg=5 cterm=none
+  hi Operator       ctermbg=8  ctermfg=4  cterm=none
+  hi Delimiter      ctermbg=8  ctermfg=4 cterm=none
+  hi Type           ctermbg=8  ctermfg=6 cterm=none
+  hi Exception      ctermbg=8  ctermfg=4 cterm=none
+
+  " -> HTML-specific
+  hi htmlBold                  ctermbg=8 ctermfg=7 cterm=bold
+  hi htmlBoldItalic            ctermbg=8 ctermfg=7 cterm=bold,italic
+  hi htmlBoldUnderline         ctermbg=8 ctermfg=7 cterm=bold,underline
+  hi htmlBoldUnderlineItalic   ctermbg=8 ctermfg=7 cterm=bold,underline,italic
+  hi htmlItalic                ctermbg=8 ctermfg=7 cterm=italic
+  hi htmlUnderline             ctermbg=8 ctermfg=7 cterm=underline
+  hi htmlUnderlineItalic       ctermbg=8 ctermfg=7 cterm=underline,italic
+
+  " Spellcheck formatting
+  if has("spell")
+    hi SpellBad   ctermbg=8  ctermfg=4    cterm=underline
+    hi SpellCap   ctermbg=8  ctermfg=2    cterm=none
+    hi SpellLocal ctermbg=8  ctermfg=3    cterm=none
+    hi SpellRare  ctermbg=8  ctermfg=6    cterm=none
+  endif
+
+endif
+
+hi! default link bbcodeBold htmlBold
+hi! default link bbcodeBoldItalic htmlBoldItalic
+hi! default link bbcodeBoldItalicUnderline htmlBoldUnderlineItalic
+hi! default link bbcodeBoldUnderline htmlBoldUnderline
+hi! default link bbcodeItalic htmlItalic
+hi! default link bbcodeItalicUnderline htmlUnderlineItalic
+hi! default link bbcodeUnderline htmlUnderline

File .vim/colors/moria.vim

+if exists("g:moria_style")
+    let s:moria_style = g:moria_style
+else
+    let s:moria_style = &background
+endif
+
+if exists("g:moria_monochrome")
+    let s:moria_monochrome = g:moria_monochrome
+else
+    let s:moria_monochrome = 0
+endif
+
+if exists("g:moria_fontface")
+    let s:moria_fontface = g:moria_fontface
+else
+    let s:moria_fontface = "plain"
+endif
+
+execute "command! -nargs=1 Colo let g:moria_style = \"<args>\" | colo moria"
+
+if s:moria_style == "black" || s:moria_style == "dark"
+    set background=dark
+elseif s:moria_style == "light" || s:moria_style == "white"
+    set background=light
+else
+    let s:moria_style = &background 
+endif
+
+hi clear
+
+if exists("syntax_on")
+    syntax reset
+endif
+
+let colors_name = "moria"
+
+if &background == "dark"
+    if s:moria_style == "dark"
+        hi Normal ctermbg=0 ctermfg=7 guibg=#202020 guifg=#d0d0d0 gui=none
+
+        hi ColorColumn ctermbg=8 ctermfg=15 guibg=#494949 gui=none
+        hi CursorColumn ctermbg=8 ctermfg=15 guibg=#404040 gui=none
+        hi CursorLine ctermbg=8 ctermfg=15 guibg=#404040 gui=none
+    elseif s:moria_style == "black"
+        hi Normal ctermbg=0 ctermfg=7 guibg=#000000 guifg=#d0d0d0 gui=none
+
+        hi ColorColumn ctermbg=8 ctermfg=15 guibg=#444444 gui=none
+        hi CursorColumn ctermbg=8 ctermfg=15 guibg=#3a3a3a gui=none
+        hi CursorLine ctermbg=8 ctermfg=15 guibg=#3a3a3a gui=none
+    endif
+    if s:moria_monochrome == 1
+        hi FoldColumn ctermbg=bg guibg=bg guifg=#a0a0a0 gui=none
+        hi LineNr guifg=#a0a0a0 gui=none
+        hi MoreMsg guibg=bg guifg=#b6b6b6 gui=bold
+        hi NonText ctermfg=8 guibg=bg guifg=#a0a0a0 gui=bold
+        hi Pmenu guibg=#909090 guifg=#000000 gui=none
+        hi PmenuSbar guibg=#707070 guifg=fg gui=none
+        hi PmenuThumb guibg=#d0d0d0 guifg=bg gui=none
+        hi SignColumn ctermbg=bg guibg=bg guifg=#a0a0a0 gui=none
+        hi StatusLine ctermbg=7 ctermfg=0 guibg=#4c4c4c guifg=fg gui=bold
+        hi StatusLineNC ctermbg=8 ctermfg=0 guibg=#404040 guifg=fg gui=none
+        hi TabLine guibg=#6e6e6e guifg=fg gui=underline
+        hi TabLineFill guibg=#6e6e6e guifg=fg gui=underline
+        hi VertSplit ctermbg=7 ctermfg=0 guibg=#404040 guifg=fg gui=none
+        if s:moria_fontface == "mixed"
+            hi Folded guibg=#4e4e4e guifg=#c0c0c0 gui=bold
+        else
+            hi Folded guibg=#4e4e4e guifg=#c0c0c0 gui=none
+        endif            
+    else
+        hi FoldColumn ctermbg=bg guibg=bg guifg=#8fa5d1 gui=none
+        hi LineNr guifg=#8fa5d1 gui=none
+        hi MoreMsg guibg=bg guifg=#97abd5 gui=bold
+        hi NonText ctermfg=8 guibg=bg guifg=#8fa5d1 gui=bold
+        hi Pmenu guibg=#6381be guifg=#000000 gui=none
+        hi PmenuSbar guibg=#41609e guifg=fg gui=none
+        hi PmenuThumb guibg=#bdcae3 guifg=bg gui=none
+        hi SignColumn ctermbg=bg guibg=bg guifg=#8fa5d1 gui=none
+        hi StatusLine ctermbg=7 ctermfg=0 guibg=#334b7d guifg=fg gui=bold
+        hi StatusLineNC ctermbg=8 ctermfg=0 guibg=#25365a guifg=fg gui=none
+        hi TabLine guibg=#41609e guifg=fg gui=underline
+        hi TabLineFill guibg=#41609e guifg=fg gui=underline
+        hi VertSplit ctermbg=7 ctermfg=0 guibg=#25365a guifg=fg gui=none
+        if s:moria_fontface == "mixed"
+            hi Folded guibg=#4e4e4e guifg=#bdcae3 gui=bold
+        else
+            hi Folded guibg=#4e4e4e guifg=#bdcae3 gui=none
+        endif            
+    endif
+    hi Cursor guibg=#ffa500 guifg=bg gui=none
+    hi DiffAdd guibg=#008b00 guifg=fg gui=none
+    hi DiffChange guibg=#00008b guifg=fg gui=none
+    hi DiffDelete guibg=#8b0000 guifg=fg gui=none
+    hi DiffText guibg=#0000cd guifg=fg gui=bold
+    hi Directory guibg=bg guifg=#1e90ff gui=none
+    hi ErrorMsg guibg=#ee2c2c guifg=#ffffff gui=bold
+    hi IncSearch guibg=#e0cd78 guifg=#000000 gui=none
+    hi ModeMsg guibg=bg guifg=fg gui=bold
+    hi PmenuSel guibg=#e0e000 guifg=#000000 gui=none
+    hi Question guibg=bg guifg=#e8b87e gui=bold
+    hi Search guibg=#90e090 guifg=#000000 gui=none
+    hi SpecialKey guibg=bg guifg=#e8b87e gui=none
+    if has("spell")
+        hi SpellBad guisp=#ee2c2c gui=undercurl
+        hi SpellCap guisp=#2c2cee gui=undercurl
+        hi SpellLocal guisp=#2ceeee gui=undercurl
+        hi SpellRare guisp=#ee2cee gui=undercurl
+    endif
+    hi TabLineSel guibg=bg guifg=fg gui=bold
+    hi Title ctermbg=0 ctermfg=15 guifg=fg gui=bold
+    if version >= 700
+        hi Visual ctermbg=7 ctermfg=0 guibg=#606060 gui=none
+    else
+        hi Visual ctermbg=7 ctermfg=0 guibg=#606060 guifg=fg gui=none
+    endif
+    hi VisualNOS ctermbg=8 ctermfg=0 guibg=bg guifg=#a0a0a0 gui=bold,underline
+    hi WarningMsg guibg=bg guifg=#ee2c2c gui=bold
+    hi WildMenu guibg=#e0e000 guifg=#000000 gui=bold
+
+    hi Comment guibg=bg guifg=#d0d0a0 gui=none
+    hi Constant guibg=bg guifg=#87df71 gui=none
+    hi Error guibg=bg guifg=#ee2c2c gui=none
+    hi Identifier guibg=bg guifg=#7ee0ce gui=none
+    hi Ignore guibg=bg guifg=bg gui=none
+    hi lCursor guibg=#00e700 guifg=#000000 gui=none
+    hi MatchParen guibg=#008b8b gui=none
+    hi PreProc guibg=bg guifg=#d7a0d7 gui=none
+    hi Special guibg=bg guifg=#e8b87e gui=none
+    hi Todo guibg=#e0e000 guifg=#000000 gui=none
+    hi Underlined ctermbg=0 ctermfg=15 guibg=bg guifg=#00a0ff gui=underline    
+
+    if s:moria_fontface == "mixed"
+        hi Statement guibg=bg guifg=#7ec0ee gui=bold
+        hi Type guibg=bg guifg=#f09479 gui=bold
+    else
+        hi Statement guibg=bg guifg=#7ec0ee gui=none
+        hi Type guibg=bg guifg=#f09479 gui=none
+    endif
+
+    hi htmlBold ctermbg=0 ctermfg=15 guibg=bg guifg=fg gui=bold
+    hi htmlBoldItalic ctermbg=0 ctermfg=15 guibg=bg guifg=fg gui=bold,italic
+    hi htmlBoldUnderline ctermbg=0 ctermfg=15 guibg=bg guifg=fg gui=bold,underline
+    hi htmlBoldUnderlineItalic ctermbg=0 ctermfg=15 guibg=bg guifg=fg gui=bold,underline,italic
+    hi htmlItalic ctermbg=0 ctermfg=15 guibg=bg guifg=fg gui=italic
+    hi htmlUnderline ctermbg=0 ctermfg=15 guibg=bg guifg=fg gui=underline
+    hi htmlUnderlineItalic ctermbg=0 ctermfg=15 guibg=bg guifg=fg gui=underline,italic
+elseif &background == "light"
+    if s:moria_style == "light"
+        hi Normal ctermbg=15 ctermfg=0 guibg=#f0f0f0 guifg=#000000 gui=none
+
+        hi ColorColumn ctermbg=7 ctermfg=0 guibg=#d3d3d3 gui=none
+        hi CursorColumn ctermbg=7 ctermfg=0 guibg=#d8d8d8 gui=none
+        hi CursorLine ctermbg=7 ctermfg=0 guibg=#d8d8d8 gui=none
+    elseif s:moria_style == "white"
+        hi Normal ctermbg=15 ctermfg=0 guibg=#ffffff guifg=#000000 gui=none
+
+        hi ColorColumn ctermbg=7 ctermfg=0 guibg=#d7d7d7 gui=none
+        hi CursorColumn ctermbg=7 ctermfg=0 guibg=#dfdfdf gui=none
+        hi CursorLine ctermbg=7 ctermfg=0 guibg=#dfdfdf gui=none
+    endif
+    if s:moria_monochrome == 1
+        hi FoldColumn ctermbg=bg guibg=bg guifg=#7a7a7a gui=none
+        hi Folded guibg=#cfcfcf guifg=#404040 gui=bold
+        hi LineNr guifg=#7a7a7a gui=none
+        hi MoreMsg guibg=bg guifg=#505050 gui=bold
+        hi NonText ctermfg=8 guibg=bg guifg=#7a7a7a gui=bold
+        hi Pmenu guibg=#9a9a9a guifg=#000000 gui=none
+        hi PmenuSbar guibg=#808080 guifg=fg gui=none
+        hi PmenuThumb guibg=#c0c0c0 guifg=fg gui=none
+        hi SignColumn ctermbg=bg guibg=bg guifg=#7a7a7a gui=none
+        hi StatusLine ctermbg=0 ctermfg=15 guibg=#a0a0a0 guifg=fg gui=bold
+        hi StatusLineNC ctermbg=7 ctermfg=0 guibg=#b0b0b0 guifg=fg gui=none
+        hi TabLine guibg=#cdcdcd guifg=fg gui=underline
+        hi TabLineFill guibg=#cdcdcd guifg=fg gui=underline
+        hi VertSplit ctermbg=7 ctermfg=0 guibg=#b0b0b0 guifg=fg gui=none
+    else
+        hi FoldColumn ctermbg=bg guibg=bg guifg=#375288 gui=none
+        hi Folded guibg=#cfcfcf guifg=#25365a gui=bold
+        hi LineNr guifg=#375288 gui=none
+        hi MoreMsg guibg=bg guifg=#2f4471 gui=bold
+        hi NonText ctermfg=8 guibg=bg guifg=#375288 gui=bold
+        hi Pmenu guibg=#708bc5 guifg=#000000 gui=none
+        hi PmenuSbar guibg=#4a6db5 guifg=fg gui=none
+        hi PmenuThumb guibg=#a6b7db guifg=fg gui=none
+        hi SignColumn ctermbg=bg guibg=bg guifg=#375288 gui=none
+        hi StatusLine ctermbg=0 ctermfg=15 guibg=#8fa5d1 guifg=fg gui=bold
+        hi StatusLineNC ctermbg=7 ctermfg=0 guibg=#a6b7db guifg=fg gui=none
+        hi TabLine guibg=#b8c6e2 guifg=fg gui=underline
+        hi TabLineFill guibg=#b8c6e2 guifg=fg gui=underline
+        hi VertSplit ctermbg=7 ctermfg=0 guibg=#a6b7db guifg=fg gui=none
+    endif
+    hi Cursor guibg=#883400 guifg=bg gui=none
+    hi DiffAdd guibg=#008b00 guifg=#ffffff gui=none
+    hi DiffChange guibg=#00008b guifg=#ffffff gui=none
+    hi DiffDelete guibg=#8b0000 guifg=#ffffff gui=none
+    hi DiffText guibg=#0000cd guifg=#ffffff gui=bold
+    hi Directory guibg=bg guifg=#0000f0 gui=none
+    hi ErrorMsg guibg=#ee2c2c guifg=#ffffff gui=bold
+    hi IncSearch guibg=#ffcd78 gui=none
+    hi ModeMsg ctermbg=15 ctermfg=0 guibg=bg guifg=fg gui=bold
+    hi PmenuSel guibg=#ffff00 guifg=#000000 gui=none
+    hi Question guibg=bg guifg=#813f11 gui=bold
+    hi Search guibg=#a0f0a0 gui=none
+    hi SpecialKey guibg=bg guifg=#912f11 gui=none
+    if has("spell")
+        hi SpellBad guisp=#ee2c2c gui=undercurl
+        hi SpellCap guisp=#2c2cee gui=undercurl
+        hi SpellLocal guisp=#008b8b gui=undercurl
+        hi SpellRare guisp=#ee2cee gui=undercurl
+    endif
+    hi TabLineSel guibg=bg guifg=fg gui=bold
+    hi Title guifg=fg gui=bold
+    if version >= 700
+        hi Visual ctermbg=7 ctermfg=0 guibg=#c4c4c4 gui=none
+    else
+        hi Visual ctermbg=7 ctermfg=0 guibg=#c4c4c4 guifg=fg gui=none
+    endif    
+    hi VisualNOS ctermbg=8 ctermfg=0 guibg=bg guifg=#a0a0a0 gui=bold,underline
+    hi WarningMsg guibg=bg guifg=#ee2c2c gui=bold
+    hi WildMenu guibg=#ffff00 guifg=fg gui=bold
+
+    hi Comment guibg=bg guifg=#786000 gui=none
+    hi Constant guibg=bg guifg=#077807 gui=none
+    hi Error guibg=bg guifg=#ee2c2c gui=none
+    hi Identifier guibg=bg guifg=#007080 gui=none
+    hi Ignore guibg=bg guifg=bg gui=none
+    hi lCursor guibg=#008000 guifg=#ffffff gui=none
+    hi MatchParen guibg=#00ffff gui=none
+    hi PreProc guibg=bg guifg=#800090 gui=none
+    hi Special guibg=bg guifg=#912f11 gui=none
+    hi Statement guibg=bg guifg=#1f3f81 gui=bold
+    hi Todo guibg=#ffff00 guifg=fg gui=none
+    hi Type guibg=bg guifg=#912f11 gui=bold
+    hi Underlined ctermbg=15 ctermfg=0 guibg=bg guifg=#0000cd gui=underline
+
+    hi htmlBold ctermbg=15 ctermfg=0 guibg=bg guifg=fg gui=bold
+    hi htmlBoldItalic ctermbg=15 ctermfg=0 guibg=bg guifg=fg gui=bold,italic
+    hi htmlBoldUnderline ctermbg=15 ctermfg=0 guibg=bg guifg=fg gui=bold,underline
+    hi htmlBoldUnderlineItalic ctermbg=15 ctermfg=0 guibg=bg guifg=fg gui=bold,underline,italic
+    hi htmlItalic ctermbg=15 ctermfg=0 guibg=bg guifg=fg gui=italic
+    hi htmlUnderline ctermbg=15 ctermfg=0 guibg=bg guifg=fg gui=underline
+    hi htmlUnderlineItalic ctermbg=15 ctermfg=0 guibg=bg guifg=fg gui=underline,italic
+endif
+
+hi! default link bbcodeBold htmlBold
+hi! default link bbcodeBoldItalic htmlBoldItalic
+hi! default link bbcodeBoldItalicUnderline htmlBoldUnderlineItalic
+hi! default link bbcodeBoldUnderline htmlBoldUnderline
+hi! default link bbcodeItalic htmlItalic
+hi! default link bbcodeItalicUnderline htmlUnderlineItalic
+hi! default link bbcodeUnderline htmlUnderline

File .vim/colors/railscasts.vim

+" Vim color scheme
+"
+" Name:         railscasts.vim
+" Maintainer:   Nick Moffitt <nick@zork.net>
+" Last Change:  01 Mar 2008
+" License:      WTFPL <http://sam.zoy.org/wtfpl/>
+" Version:      2.1
+"
+" This theme is based on Josh O'Rourke's Vim clone of the railscast
+" textmate theme.  The key thing I have done here is supply 256-color
+" terminal equivalents for as many of the colors as possible, and fixed
+" up some of the funny behaviors for editing e-mails and such.
+"
+" To use for gvim:
+" 1: install this file as ~/.vim/colors/railscasts.vim
+" 2: put "colorscheme railscasts" in your .gvimrc
+"
+" If you are using Ubuntu, you can get the benefit of this in your
+" terminals using ordinary vim by taking the following steps:
+"
+" 1: sudo apt-get install ncurses-term
+" 2: put the following in your .vimrc
+"     if $COLORTERM == 'gnome-terminal'
+"         set term=gnome-256color
+"         colorscheme railscasts
+"     else
+"         colorscheme default
+"     endif
+" 3: if you wish to use this with screen, add the following to your .screenrc:
+"     attrcolor b ".I"
+"     termcapinfo xterm 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm'
+"     defbce "on"
+"     term screen-256color-bce
+
+set background=dark
+hi clear
+if exists("syntax_on")
+  syntax reset
+endif
+
+let g:colors_name = "railscasts"
+
+hi link htmlTag                     xmlTag
+hi link htmlTagName                 xmlTagName
+hi link htmlEndTag                  xmlEndTag
+
+highlight Normal                    guifg=#E6E1DC guibg=#111111 
+highlight Cursor                    guifg=#000000 ctermfg=0 guibg=#FFFFFF ctermbg=15	
+highlight CursorLine                guibg=#000000 ctermbg=233 cterm=NONE
+
+highlight Comment                   guifg=#BC9458 ctermfg=180 gui=italic
+highlight Constant                  guifg=#6D9CBE ctermfg=73
+highlight Define                    guifg=#CC7833 ctermfg=173
+highlight Error                     guifg=#FFC66D ctermfg=221 guibg=#990000 ctermbg=88
+highlight Function                  guifg=#FFC66D ctermfg=221 gui=NONE cterm=NONE
+highlight Identifier                guifg=#6D9CBE ctermfg=73 gui=NONE cterm=NONE
+highlight Include                   guifg=#CC7833 ctermfg=173 gui=NONE cterm=NONE
+highlight PreCondit                 guifg=#CC7833 ctermfg=173 gui=NONE cterm=NONE
+highlight Keyword                   guifg=#CC7833 ctermfg=173 cterm=NONE
+highlight LineNr                    guifg=#2B2B2B ctermfg=159 guibg=#C0C0FF
+highlight Number                    guifg=#A5C261 ctermfg=107
+highlight PreProc                   guifg=#E6E1DC ctermfg=103
+highlight Search                    guifg=NONE ctermfg=NONE guibg=#2b2b2b ctermbg=235 gui=italic cterm=underline
+highlight Statement                 guifg=#CC7833 ctermfg=173 gui=NONE cterm=NONE
+highlight String                    guifg=#A5C261 ctermfg=107
+highlight Title                     guifg=#FFFFFF ctermfg=15
+highlight Type                      guifg=#DA4939 ctermfg=167 gui=NONE cterm=NONE
+highlight Visual                    guibg=#5A647E ctermbg=60
+
+highlight DiffAdd                   guifg=#E6E1DC ctermfg=7 guibg=#519F50 ctermbg=71
+highlight DiffDelete                guifg=#E6E1DC ctermfg=7 guibg=#660000 ctermbg=52
+highlight Special                   guifg=#DA4939 ctermfg=167 
+
+highlight pythonBuiltin             guifg=#6D9CBE ctermfg=73 gui=NONE cterm=NONE
+highlight rubyBlockParameter        guifg=#FFFFFF ctermfg=15
+highlight rubyClass                 guifg=#FFFFFF ctermfg=15
+highlight rubyConstant              guifg=#DA4939 ctermfg=167
+highlight rubyInstanceVariable      guifg=#D0D0FF ctermfg=189
+highlight rubyInterpolation         guifg=#519F50 ctermfg=107
+highlight rubyLocalVariableOrMethod guifg=#D0D0FF ctermfg=189
+highlight rubyPredefinedConstant    guifg=#DA4939 ctermfg=167
+highlight rubyPseudoVariable        guifg=#FFC66D ctermfg=221
+highlight rubyStringDelimiter       guifg=#A5C261 ctermfg=143
+
+highlight xmlTag                    guifg=#E8BF6A ctermfg=179
+highlight xmlTagName                guifg=#E8BF6A ctermfg=179
+highlight xmlEndTag                 guifg=#E8BF6A ctermfg=179
+
+highlight mailSubject               guifg=#A5C261 ctermfg=107
+highlight mailHeaderKey             guifg=#FFC66D ctermfg=221
+highlight mailEmail                 guifg=#A5C261 ctermfg=107 gui=italic cterm=underline
+
+highlight SpellBad                  guifg=#D70000 ctermfg=160 ctermbg=NONE cterm=underline
+highlight SpellRare                 guifg=#D75F87 ctermfg=168 guibg=NONE ctermbg=NONE gui=underline cterm=underline
+highlight SpellCap                  guifg=#D0D0FF ctermfg=189 guibg=NONE ctermbg=NONE gui=underline cterm=underline
+highlight MatchParen                guifg=#FFFFFF ctermfg=15 guibg=#005f5f ctermbg=23

File .vim/compiler/coffee.vim

+" Language:    CoffeeScript
+" Maintainer:  Mick Koch <kchmck@gmail.com>
+" URL:         http://github.com/kchmck/vim-coffee-script
+" License:     WTFPL
+
+if exists('current_compiler')
+  finish
+endif
+
+let current_compiler = 'coffee'
+" Pattern to check if coffee is the compiler
+let s:pat = '^' . current_compiler
+
+" Extra options passed to CoffeeMake
+if !exists("coffee_make_options")
+  let coffee_make_options = ""
+endif
+
+" Get a `makeprg` for the current filename. This is needed to support filenames
+" with spaces and quotes, but also not break generic `make`.
+function! s:GetMakePrg()
+  return 'coffee -c ' . g:coffee_make_options . ' $* ' . fnameescape(expand('%'))
+endfunction
+
+" Set `makeprg` and return 1 if coffee is still the compiler, else return 0.
+function! s:SetMakePrg()
+  if &l:makeprg =~ s:pat
+    let &l:makeprg = s:GetMakePrg()
+  elseif &g:makeprg =~ s:pat
+    let &g:makeprg = s:GetMakePrg()
+  else
+    return 0
+  endif
+
+  return 1
+endfunction
+
+" Set a dummy compiler so we can check whether to set locally or globally.
+CompilerSet makeprg=coffee
+call s:SetMakePrg()
+
+CompilerSet errorformat=Error:\ In\ %f\\,\ %m\ on\ line\ %l,
+                       \Error:\ In\ %f\\,\ Parse\ error\ on\ line\ %l:\ %m,
+                       \SyntaxError:\ In\ %f\\,\ %m,
+                       \%-G%.%#
+
+" Compile the current file.
+command! -bang -bar -nargs=* CoffeeMake make<bang> <args>
+
+" Set `makeprg` on rename since we embed the filename in the setting.
+augroup CoffeeUpdateMakePrg
+  autocmd!
+
+  " Update `makeprg` if coffee is still the compiler, else stop running this
+  " function.
+  function! s:UpdateMakePrg()
+    if !s:SetMakePrg()
+      autocmd! CoffeeUpdateMakePrg
+    endif
+  endfunction
+
+  " Set autocmd locally if compiler was set locally.
+  if &l:makeprg =~ s:pat
+    autocmd BufFilePost,BufWritePost <buffer> call s:UpdateMakePrg()
+  else
+    autocmd BufFilePost,BufWritePost          call s:UpdateMakePrg()
+  endif
+augroup END

File .vim/doc/coffee-script.txt

+*coffee-script.txt*                                         For Vim version 7.3
+
+=============================================================================
+Author:  Mick Koch <kchmck@gmail.com>		*coffee-script-author*
+License: WTFPL (see |coffee-script-license|)
+=============================================================================
+
+CONTENTS					*coffee-script-contents*
+
+|coffee-script-introduction|		Introduction and Feature Summary
+|coffee-script-commands|			Commands
+|coffee-script-settings|			Settings
+
+{Vi does not have any of this}
+
+=============================================================================
+
+INTRODUCTION					*coffee-script*
+						*coffee-script-introduction*
+
+This plugin adds support for CoffeeScript syntax, indenting, and compiling.
+Also included is an eco syntax and support for CoffeeScript in Haml and HTML.
+
+COMMANDS					*coffee-script-commands*
+
+						*:CoffeeMake*
+:CoffeeMake[!] {opts}	Wrapper around |:make| that also passes options in
+                        |g:coffee_make_options| to the compiler. Use |:silent|
+                        to hide compiler output. See |:make| for more
+                        information about the bang and other helpful commands.
+
+						*:CoffeeCompile*
+:[range]CoffeeCompile [vertical] [{win-size}]
+			Shows how the current file or [range] is compiled
+			to JavaScript. [vertical] (or vert) splits the
+			compile buffer vertically instead of horizontally, and
+			{win-size} sets the initial size of the buffer. It can
+			be closed quickly with the "q" key.
+
+:CoffeeCompile {watch} [vertical] [{win-size}]
+			The watch mode of :CoffeeCompile emulates the "Try
+			CoffeeScript" live preview on the CoffeeScript web
+			site. After making changes to the source file,
+			exiting insert mode will cause the preview buffer to
+			update automatically. {watch} should be given as
+                        "watch" or "unwatch," where the latter will stop the
+                        automatic updating. [vertical] is recommended, and
+                        'scrollbind' is useful.
+
+						*:CoffeeRun*
+:[range]CoffeeRun	Compiles the file or [range] and runs the resulting
+			JavaScript, displaying the output.
+
+SETTINGS					*coffee-script-settings*
+
+You can configure plugin behavior using global variables and syntax commands
+in your |vimrc|.
+
+Global Settings~
+
+						*g:coffee_make_options*
+Set default options |CoffeeMake| should pass to the compiler.
+>
+	let coffee_make_options = '--bare'
+<
+						*g:coffee_compile_vert*
+Split the CoffeeCompile buffer vertically by default.
+>
+	let coffee_compile_vert = 1
+
+Syntax Highlighting~
+						*ft-coffee-script-syntax*
+Trailing whitespace is highlighted as an error by default. This can be
+disabled with:
+>
+	hi link coffeeSpaceError NONE
+
+Trailing semicolons are also considered an error (for help transitioning from
+JavaScript.) This can be disabled with:
+>
+	hi link coffeeSemicolonError NONE
+
+Reserved words like {function} and {var} are highlighted where they're not
+allowed in CoffeeScript. This can be disabled with:
+>
+        hi link coffeeReservedError NONE
+
+COMPILER					*compiler-coffee-script*
+
+A CoffeeScript compiler is provided as a wrapper around {coffee} and can be
+loaded with;
+>
+    compiler coffee
+
+This is done automatically when a CoffeeScript file is opened if no other
+compiler is loaded.
+
+=============================================================================
+
+LICENSE							*coffee-script-license*
+
+		DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
+			Version 2, December 2004
+
+     Copyright (C) 2010 to 2011 Mick Koch <kchmck@gmail.com>
+
+     Everyone is permitted to copy and distribute verbatim or modified
+     copies of this license document, and changing it is allowed as long
+     as the name is changed.
+
+		DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
+       TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+      0. You just DO WHAT THE FUCK YOU WANT TO.
+
+ vim:tw=78:ts=8:ft=help:norl:

File .vim/ftdetect/coffee.vim

+" Language:    CoffeeScript
+" Maintainer:  Mick Koch <kchmck@gmail.com>
+" URL:         http://github.com/kchmck/vim-coffee-script
+" License:     WTFPL
+
+autocmd BufNewFile,BufRead *.coffee set filetype=coffee
+autocmd BufNewFile,BufRead *Cakefile set filetype=coffee
+autocmd BufNewFile,BufRead *.coffeekup set filetype=coffee

File .vim/ftdetect/eco.vim

+autocmd BufNewFile,BufRead *.eco set filetype=eco

File .vim/ftplugin/coffee.vim

+" Language:    CoffeeScript
+" Maintainer:  Mick Koch <kchmck@gmail.com>
+" URL:         http://github.com/kchmck/vim-coffee-script
+" License:     WTFPL
+
+if exists("b:did_ftplugin")
+  finish
+endif
+
+let b:did_ftplugin = 1
+
+setlocal formatoptions-=t formatoptions+=croql
+setlocal comments=:#
+setlocal commentstring=#\ %s
+setlocal omnifunc=javascriptcomplete#CompleteJS
+
+" Enable CoffeeMake if it won't overwrite any settings.
+if !len(&l:makeprg)
+  compiler coffee
+endif
+
+" Reset the global variables used by CoffeeCompile.
+function! s:CoffeeCompileResetVars()
+  " Position in the source buffer
+  let s:coffee_compile_src_buf = -1
+  let s:coffee_compile_src_pos = []
+
+  " Position in the CoffeeCompile buffer
+  let s:coffee_compile_buf = -1
+  let s:coffee_compile_win = -1
+  let s:coffee_compile_pos = []
+
+  " If CoffeeCompile is watching a buffer
+  let s:coffee_compile_watch = 0
+endfunction
+
+" Save the cursor position when moving to and from the CoffeeCompile buffer.
+function! s:CoffeeCompileSavePos()
+  let buf = bufnr('%')
+  let pos = getpos('.')
+
+  if buf == s:coffee_compile_buf
+    let s:coffee_compile_pos = pos
+  else
+    let s:coffee_compile_src_buf = buf
+    let s:coffee_compile_src_pos = pos
+  endif
+endfunction
+
+" Restore the cursor to the source buffer.
+function! s:CoffeeCompileRestorePos()
+  let win = bufwinnr(s:coffee_compile_src_buf)
+
+  if win != -1
+    exec win 'wincmd w'
+    call setpos('.', s:coffee_compile_src_pos)
+  endif
+endfunction
+
+" Close the CoffeeCompile buffer and clean things up.
+function! s:CoffeeCompileClose()
+  silent! autocmd! CoffeeCompileAuPos
+  silent! autocmd! CoffeeCompileAuWatch
+
+  call s:CoffeeCompileRestorePos()
+  call s:CoffeeCompileResetVars()
+endfunction
+
+" Update the CoffeeCompile buffer given some input lines.
+function! s:CoffeeCompileUpdate(startline, endline)
+  let input = join(getline(a:startline, a:endline), "\n")
+
+  " Coffee doesn't like empty input.
+  if !len(input)
+    return
+  endif
+
+  " Compile input.
+  let output = system('coffee -scb 2>&1', input)
+
+  " Move to the CoffeeCompile buffer.
+  exec s:coffee_compile_win 'wincmd w'
+
+  " Replace buffer contents with new output and delete the last empty line.
+  setlocal modifiable
+    exec '% delete _'
+    put! =output
+    exec '$ delete _'
+  setlocal nomodifiable
+
+  " Highlight as JavaScript if there is no compile error.
+  if v:shell_error
+    setlocal filetype=
+  else
+    setlocal filetype=javascript
+  endif
+
+  " Restore the cursor in the compiled output.
+  call setpos('.', s:coffee_compile_pos)
+endfunction
+
+" Update the CoffeeCompile buffer with the whole source buffer and restore the
+" cursor.
+function! s:CoffeeCompileWatchUpdate()
+  call s:CoffeeCompileSavePos()
+  call s:CoffeeCompileUpdate(1, '$')
+  call s:CoffeeCompileRestorePos()
+endfunction
+
+" Peek at compiled CoffeeScript in a scratch buffer. We handle ranges like this
+" to prevent the cursor from being moved (and its position saved) before the
+" function is called.
+function! s:CoffeeCompile(startline, endline, args)
+  " Don't compile the CoffeeCompile buffer.
+  if bufnr('%') == s:coffee_compile_buf
+    return
+  endif
+
+  " Parse arguments.
+  let watch = a:args =~ '\<watch\>'
+  let unwatch = a:args =~ '\<unwatch\>'
+  let size = str2nr(matchstr(a:args, '\<\d\+\>'))
+   
+  " Determine default split direction.
+  if exists("g:coffee_compile_vert")
+    let vert = 1
+  else
+    let vert = a:args =~ '\<vert\%[ical]\>'
+  endif
+
+  " Remove any watch listeners.
+  silent! autocmd! CoffeeCompileAuWatch
+
+  " If just unwatching, don't compile.
+  if unwatch
+    let s:coffee_compile_watch = 0
+    return
+  endif
+
+  if watch
+    let s:coffee_compile_watch = 1
+  endif
+
+  call s:CoffeeCompileSavePos()
+
+  " Build the CoffeeCompile buffer if it doesn't exist.
+  if s:coffee_compile_buf == -1
+    let src_win = bufwinnr(s:coffee_compile_src_buf)
+
+    " Create the new window and resize it.
+    if vert
+      let width = size ? size : winwidth(src_win) / 2
+
+      vertical new
+      exec 'vertical resize' width
+    else
+      " Try to guess the compiled output's height.
+      let height = size ? size : min([winheight(src_win) / 2,
+      \                               a:endline - a:startline + 2])
+
+      botright new
+      exec 'resize' height
+    endif
+
+    " Set up scratch buffer.
+    setlocal bufhidden=wipe buftype=nofile
+    setlocal nobuflisted nomodifiable noswapfile nowrap
+
+    autocmd BufWipeout <buffer> call s:CoffeeCompileClose()
+    nnoremap <buffer> <silent> q :hide<CR>
+
+    " Save the cursor position on each buffer switch.
+    augroup CoffeeCompileAuPos
+      autocmd BufEnter,BufLeave * call s:CoffeeCompileSavePos()
+    augroup END
+
+    let s:coffee_compile_buf = bufnr('%')
+    let s:coffee_compile_win = bufwinnr(s:coffee_compile_buf)
+  endif
+
+  " Go back to the source buffer and do the initial compile.
+  call s:CoffeeCompileRestorePos()
+
+  if s:coffee_compile_watch
+    call s:CoffeeCompileWatchUpdate()
+
+    augroup CoffeeCompileAuWatch
+      autocmd InsertLeave <buffer> call s:CoffeeCompileWatchUpdate()
+    augroup END
+  else
+    call s:CoffeeCompileUpdate(a:startline, a:endline)
+  endif
+endfunction
+
+" Complete arguments for the CoffeeCompile command.
+function! s:CoffeeCompileComplete(arg, cmdline, cursor)
+  let args = ['unwatch', 'vertical', 'watch']
+
+  if !len(a:arg)
+    return args
+  endif
+
+  let match = '^' . a:arg
+
+  for arg in args
+    if arg =~ match
+      return [arg]
+    endif
+  endfor
+endfunction
+
+" Don't let new windows overwrite the CoffeeCompile variables.
+if !exists("s:coffee_compile_buf")
+  call s:CoffeeCompileResetVars()
+endif
+
+" Peek at compiled CoffeeScript.
+command! -range=% -bar -nargs=* -complete=customlist,s:CoffeeCompileComplete
+\        CoffeeCompile call s:CoffeeCompile(<line1>, <line2>, <q-args>)
+" Run some CoffeeScript.
+command! -range=% -bar CoffeeRun <line1>,<line2>:w !coffee -s

File .vim/indent/coffee.vim

+" Language:    CoffeeScript
+" Maintainer:  Mick Koch <kchmck@gmail.com>
+" URL:         http://github.com/kchmck/vim-coffee-script
+" License:     WTFPL
+
+if exists("b:did_indent")
+  finish
+endif
+
+let b:did_indent = 1
+
+setlocal autoindent
+setlocal indentexpr=GetCoffeeIndent(v:lnum)
+" Make sure GetCoffeeIndent is run when these are typed so they can be
+" indented or outdented.
+setlocal indentkeys+=0],0),0.,=else,=when,=catch,=finally
+
+" Only define the function once.
+if exists("*GetCoffeeIndent")
+  finish
+endif
+
+" Keywords to indent after
+let s:INDENT_AFTER_KEYWORD = '^\%(if\|unless\|else\|for\|while\|until\|'
+\                          . 'loop\|switch\|when\|try\|catch\|finally\|'
+\                          . 'class\)\>'
+
+" Operators to indent after
+let s:INDENT_AFTER_OPERATOR = '\%([([{:=]\|[-=]>\)$'
+
+" Keywords and operators that continue a line
+let s:CONTINUATION = '\<\%(is\|isnt\|and\|or\)\>$'
+\                  . '\|'
+\                  . '\%(-\@<!-\|+\@<!+\|<\|[-=]\@<!>\|\*\|/\@<!/\|%\||\|'
+\                  . '&\|,\|\.\@<!\.\)$'
+
+" Operators that block continuation indenting
+let s:CONTINUATION_BLOCK = '[([{:=]$'
+
+" A continuation dot access
+let s:DOT_ACCESS = '^\.'
+
+" Keywords to outdent after
+let s:OUTDENT_AFTER = '^\%(return\|break\|continue\|throw\)\>'
+
+" A compound assignment like `... = if ...`
+let s:COMPOUND_ASSIGNMENT = '[:=]\s*\%(if\|unless\|for\|while\|until\|'
+\                         . 'switch\|try\|class\)\>'
+
+" A postfix condition like `return ... if ...`.
+let s:POSTFIX_CONDITION = '\S\s\+\zs\<\%(if\|unless\)\>'
+
+" A single-line else statement like `else ...` but not `else if ...
+let s:SINGLE_LINE_ELSE = '^else\s\+\%(\<\%(if\|unless\)\>\)\@!'
+
+" Max lines to look back for a match
+let s:MAX_LOOKBACK = 50
+
+" Syntax names for strings
+let s:SYNTAX_STRING = 'coffee\%(String\|AssignString\|Embed\|Regex\|Heregex\|'
+\                   . 'Heredoc\)'
+
+" Syntax names for comments
+let s:SYNTAX_COMMENT = 'coffee\%(Comment\|BlockComment\|HeregexComment\)'
+
+" Syntax names for strings and comments
+let s:SYNTAX_STRING_COMMENT = s:SYNTAX_STRING . '\|' . s:SYNTAX_COMMENT
+
+" Get the linked syntax name of a character.
+function! s:SyntaxName(linenum, col)
+  return synIDattr(synID(a:linenum, a:col, 1), 'name')
+endfunction
+
+" Check if a character is in a comment.
+function! s:IsComment(linenum, col)
+  return s:SyntaxName(a:linenum, a:col) =~ s:SYNTAX_COMMENT
+endfunction
+
+" Check if a character is in a string.
+function! s:IsString(linenum, col)
+  return s:SyntaxName(a:linenum, a:col) =~ s:SYNTAX_STRING
+endfunction
+
+" Check if a character is in a comment or string.
+function! s:IsCommentOrString(linenum, col)
+  return s:SyntaxName(a:linenum, a:col) =~ s:SYNTAX_STRING_COMMENT
+endfunction
+
+" Check if a whole line is a comment.
+function! s:IsCommentLine(linenum)
+  " Check the first non-whitespace character.
+  return s:IsComment(a:linenum, indent(a:linenum) + 1)
+endfunction
+
+" Repeatedly search a line for a regex until one is found outside a string or
+" comment.
+function! s:SmartSearch(linenum, regex)
+  " Start at the first column.
+  let col = 0
+
+  " Search until there are no more matches, unless a good match is found.
+  while 1
+    call cursor(a:linenum, col + 1)
+    let [_, col] = searchpos(a:regex, 'cn', a:linenum)
+
+    " No more matches.
+    if !col
+      break
+    endif
+
+    if !s:IsCommentOrString(a:linenum, col)
+      return 1
+    endif
+  endwhile
+
+  " No good match found.
+  return 0
+endfunction
+
+" Skip a match if it's in a comment or string, is a single-line statement that
+" isn't adjacent, or is a postfix condition.
+function! s:ShouldSkip(startlinenum, linenum, col)
+  if s:IsCommentOrString(a:linenum, a:col)
+    return 1
+  endif
+
+  " Check for a single-line statement that isn't adjacent.
+  if s:SmartSearch(a:linenum, '\<then\>') && a:startlinenum - a:linenum > 1
+    return 1
+  endif
+
+  if s:SmartSearch(a:linenum, s:POSTFIX_CONDITION) &&
+  \ !s:SmartSearch(a:linenum, s:COMPOUND_ASSIGNMENT)
+    return 1
+  endif
+
+  return 0
+endfunction
+
+" Find the farthest line to look back to, capped to line 1 (zero and negative
+" numbers cause bad things).
+function! s:MaxLookback(startlinenum)
+  return max([1, a:startlinenum - s:MAX_LOOKBACK])
+endfunction
+
+" Get the skip expression for searchpair().
+function! s:SkipExpr(startlinenum)
+  return "s:ShouldSkip(" . a:startlinenum . ", line('.'), col('.'))"
+endfunction
+
+" Search for pairs of text.
+function! s:SearchPair(start, end)
+  " The cursor must be in the first column for regexes to match.
+  call cursor(0, 1)
+
+  let startlinenum = line('.')
+
+  " Don't need the W flag since MaxLookback caps the search to line 1.
+  return searchpair(a:start, '', a:end, 'bcn',
+  \                 s:SkipExpr(startlinenum),
+  \                 s:MaxLookback(startlinenum))
+endfunction
+
+" Try to find a previous matching line.
+function! s:GetMatch(curline)
+  let firstchar = a:curline[0]
+
+  if firstchar == '}'
+    return s:SearchPair('{', '}')
+  elseif firstchar == ')'
+    return s:SearchPair('(', ')')
+  elseif firstchar == ']'
+    return s:SearchPair('\[', '\]')
+  elseif a:curline =~ '^else\>'
+    return s:SearchPair('\<\%(if\|unless\|when\)\>', '\<else\>')
+  elseif a:curline =~ '^catch\>'
+    return s:SearchPair('\<try\>', '\<catch\>')
+  elseif a:curline =~ '^finally\>'
+    return s:SearchPair('\<try\>', '\<finally\>')
+  endif
+
+  return 0
+endfunction
+
+" Get the nearest previous line that isn't a comment.
+function! s:GetPrevNormalLine(startlinenum)
+  let curlinenum = a:startlinenum
+
+  while curlinenum > 0
+    let curlinenum = prevnonblank(curlinenum - 1)
+
+    if !s:IsCommentLine(curlinenum)
+      return curlinenum
+    endif
+  endwhile
+
+  return 0
+endfunction
+
+" Try to find a comment in a line.
+function! s:FindComment(linenum)
+  let col = 0
+
+  while 1
+    call cursor(a:linenum, col + 1)
+    let [_, col] = searchpos('#', 'cn', a:linenum)
+
+    if !col
+      break
+    endif
+
+    if s:IsComment(a:linenum, col)
+      return col
+    endif
+  endwhile
+
+  return 0
+endfunction
+
+" Get a line without comments or surrounding whitespace.
+function! s:GetTrimmedLine(linenum)
+  let comment = s:FindComment(a:linenum)
+  let line = getline(a:linenum)
+
+  if comment
+    " Subtract 1 to get to the column before the comment and another 1 for
+    " zero-based indexing.
+    let line = line[:comment - 2]
+  endif
+
+  return substitute(substitute(line, '^\s\+', '', ''),
+  \                                  '\s\+$', '', '')
+endfunction
+
+function! s:GetCoffeeIndent(curlinenum)
+  let prevlinenum = s:GetPrevNormalLine(a:curlinenum)
+
+  " Don't do anything if there's no previous line.
+  if !prevlinenum
+    return -1
+  endif
+
+  let curline = s:GetTrimmedLine(a:curlinenum)
+
+  " Try to find a previous matching statement. This handles outdenting.
+  let matchlinenum = s:GetMatch(curline)
+
+  if matchlinenum
+    return indent(matchlinenum)
+  endif
+
+  " Try to find a matching `when`.
+  if curline =~ '^when\>' && !s:SmartSearch(prevlinenum, '\<switch\>')
+    let linenum = a:curlinenum
+
+    while linenum > 0
+      let linenum = s:GetPrevNormalLine(linenum)
+
+      if getline(linenum) =~ '^\s*when\>'
+        return indent(linenum)
+      endif
+    endwhile
+
+    return -1
+  endif
+
+  let prevline = s:GetTrimmedLine(prevlinenum)
+  let previndent = indent(prevlinenum)
+
+  " Always indent after these operators.
+  if prevline =~ s:INDENT_AFTER_OPERATOR
+    return previndent + &shiftwidth
+  endif
+
+  " Indent after a continuation if it's the first.
+  if prevline =~ s:CONTINUATION
+    " If the line ends in a slash, make sure it isn't a regex.
+    if prevline =~ '/$'
+      " Move to the line so we can get the last column.
+      call cursor(prevlinenum)
+
+      if s:IsString(prevlinenum, col('$') - 1)
+        return -1
+      endif
+    endif
+
+    let prevprevlinenum = s:GetPrevNormalLine(prevlinenum)
+
+    " If the continuation is the first in the file, don't run the other checks.
+    if !prevprevlinenum
+      return previndent + &shiftwidth
+    endif
+
+    let prevprevline = s:GetTrimmedLine(prevprevlinenum)
+
+    if prevprevline !~ s:CONTINUATION && prevprevline !~ s:CONTINUATION_BLOCK
+      return previndent + &shiftwidth
+    endif
+
+    return -1
+  endif
+
+  " Indent after these keywords and compound assignments if they aren't a
+  " single-line statement.
+  if prevline =~ s:INDENT_AFTER_KEYWORD || prevline =~ s:COMPOUND_ASSIGNMENT
+    if !s:SmartSearch(prevlinenum, '\<then\>') && prevline !~ s:SINGLE_LINE_ELSE
+      return previndent + &shiftwidth
+    endif
+
+    return -1
+  endif
+
+  " Indent a dot access if it's the first.
+  if curline =~ s:DOT_ACCESS && prevline !~ s:DOT_ACCESS
+    return previndent + &shiftwidth
+  endif
+
+  " Outdent after these keywords if they don't have a postfix condition or are
+  " a single-line statement.
+  if prevline =~ s:OUTDENT_AFTER
+    if !s:SmartSearch(prevlinenum, s:POSTFIX_CONDITION) ||
+    \   s:SmartSearch(prevlinenum, '\<then\>')
+      return previndent - &shiftwidth
+    endif
+  endif
+
+  " No indenting or outdenting is needed.
+  return -1
+endfunction
+
+" Wrap s:GetCoffeeIndent to keep the cursor position.
+function! GetCoffeeIndent(curlinenum)
+  let oldcursor = getpos('.')
+  let indent = s:GetCoffeeIndent(a:curlinenum)
+  call setpos('.', oldcursor)
+
+  return indent
+endfunction

File .vim/syntax/coffee.vim

+" Language:    CoffeeScript
+" Maintainer:  Mick Koch <kchmck@gmail.com>
+" URL:         http://github.com/kchmck/vim-coffee-script
+" License:     WTFPL
+
+" Bail if our syntax is already loaded.
+if exists('b:current_syntax') && b:current_syntax == 'coffee'
+  finish
+endif
+
+" Include JavaScript for coffeeEmbed.
+syn include @coffeeJS syntax/javascript.vim
+
+" Highlight long strings.
+syn sync minlines=100
+
+" CoffeeScript identifiers can have dollar signs.
+setlocal isident+=$
+
+" These are `matches` instead of `keywords` because vim's highlighting
+" priority for keywords is higher than matches. This causes keywords to be
+" highlighted inside matches, even if a match says it shouldn't contain them --
+" like with coffeeAssign and coffeeDot.
+syn match coffeeStatement /\<\%(return\|break\|continue\|throw\)\>/ display
+hi def link coffeeStatement Statement
+
+syn match coffeeRepeat /\<\%(for\|while\|until\|loop\)\>/ display
+hi def link coffeeRepeat Repeat
+
+syn match coffeeConditional /\<\%(if\|else\|unless\|switch\|when\|then\)\>/
+\                           display
+hi def link coffeeConditional Conditional
+
+syn match coffeeException /\<\%(try\|catch\|finally\)\>/ display
+hi def link coffeeException Exception
+
+syn match coffeeKeyword /\<\%(new\|in\|of\|by\|and\|or\|not\|is\|isnt\|class\|extends\|super\|do\)\>/
+\                       display
+" The `own` keyword is only a keyword after `for`.
+syn match coffeeKeyword /\<for\s\+own\>/ contained containedin=coffeeRepeat
+\                       display
+hi def link coffeeKeyword Keyword
+
+syn match coffeeOperator /\<\%(instanceof\|typeof\|delete\)\>/ display
+hi def link coffeeOperator Operator
+
+" The first case matches symbol operators only if they have an operand before.
+syn match coffeeExtendedOp /\%(\S\s*\)\@<=[+\-*/%&|\^=!<>?.]\+\|[-=]>\|--\|++\|:/
+\                          display
+syn match coffeeExtendedOp /\<\%(and\|or\)=/ display
+hi def link coffeeExtendedOp coffeeOperator
+
+" This is separate from `coffeeExtendedOp` to help differentiate commas from
+" dots.
+syn match coffeeSpecialOp /[,;]/ display
+hi def link coffeeSpecialOp SpecialChar
+
+syn match coffeeBoolean /\<\%(true\|on\|yes\|false\|off\|no\)\>/ display
+hi def link coffeeBoolean Boolean
+
+syn match coffeeGlobal /\<\%(null\|undefined\)\>/ display
+hi def link coffeeGlobal Type
+
+" A special variable
+syn match coffeeSpecialVar /\<\%(this\|prototype\|arguments\)\>/ display
+" An @-variable
+syn match coffeeSpecialVar /@\%(\I\i*\)\?/ display
+hi def link coffeeSpecialVar Special
+
+" A class-like name that starts with a capital letter
+syn match coffeeObject /\<\u\w*\>/ display
+hi def link coffeeObject Structure
+
+" A constant-like name in SCREAMING_CAPS
+syn match coffeeConstant /\<\u[A-Z0-9_]\+\>/ display
+hi def link coffeeConstant Constant
+
+" A variable name
+syn cluster coffeeIdentifier contains=coffeeSpecialVar,coffeeObject,
+\                                     coffeeConstant
+
+" A non-interpolated string
+syn cluster coffeeBasicString contains=@Spell,coffeeEscape
+" An interpolated string
+syn cluster coffeeInterpString contains=@coffeeBasicString,coffeeInterp
+
+" Regular strings
+syn region coffeeString start=/"/ skip=/\\\\\|\\"/ end=/"/
+\                       contains=@coffeeInterpString
+syn region coffeeString start=/'/ skip=/\\\\\|\\'/ end=/'/
+\                       contains=@coffeeBasicString
+hi def link coffeeString String
+
+" A integer, including a leading plus or minus
+syn match coffeeNumber /\i\@<![-+]\?\d\+\%([eE][+-]\?\d\+\)\?/ display
+" A hex number
+syn match coffeeNumber /\<0[xX]\x\+\>/ display
+syn match coffeeNumber /\<0b[01]\+\>/ display
+hi def link coffeeNumber Number
+
+" A floating-point number, including a leading plus or minus
+syn match coffeeFloat /\i\@<![-+]\?\d*\.\@<!\.\d\+\%([eE][+-]\?\d\+\)\?/
+\                     display
+hi def link coffeeFloat Float
+
+" An error for reserved keywords
+if !exists("coffee_no_reserved_words_error")
+  syn match coffeeReservedError /\<\%(case\|default\|function\|var\|void\|with\|const\|let\|enum\|export\|import\|native\|__hasProp\|__extends\|__slice\|__bind\|__indexOf\)\>/
+  \                             display
+  hi def link coffeeReservedError Error
+endif
+
+" A normal object assignment
+syn match coffeeObjAssign /@\?\I\i*\s*\ze::\@!/ contains=@coffeeIdentifier display
+hi def link coffeeObjAssign Identifier
+
+syn keyword coffeeTodo TODO FIXME XXX contained
+hi def link coffeeTodo Todo
+
+syn match coffeeComment /#.*/ contains=@Spell,coffeeTodo
+hi def link coffeeComment Comment
+
+syn region coffeeBlockComment start=/####\@!/ end=/###/
+\                             contains=@Spell,coffeeTodo
+hi def link coffeeBlockComment coffeeComment
+
+" A comment in a heregex
+syn region coffeeHeregexComment start=/#/ end=/\ze\/\/\/\|$/ contained
+\                               contains=@Spell,coffeeTodo
+hi def link coffeeHeregexComment coffeeComment
+
+" Embedded JavaScript
+syn region coffeeEmbed matchgroup=coffeeEmbedDelim
+\                      start=/`/ skip=/\\\\\|\\`/ end=/`/
+\                      contains=@coffeeJS
+hi def link coffeeEmbedDelim Delimiter
+
+syn region coffeeInterp matchgroup=coffeeInterpDelim start=/#{/ end=/}/ contained
+\                       contains=@coffeeAll
+hi def link coffeeInterpDelim PreProc
+
+" A string escape sequence
+syn match coffeeEscape /\\\d\d\d\|\\x\x\{2\}\|\\u\x\{4\}\|\\./ contained display
+hi def link coffeeEscape SpecialChar
+
+" A regex -- must not follow a parenthesis, number, or identifier, and must not
+" be followed by a number
+syn region coffeeRegex start=/\%(\%()\|\i\@<!\d\)\s*\|\i\)\@<!\/=\@!\s\@!/
+\                      skip=/\[[^\]]\{-}\/[^\]]\{-}\]/
+\                      end=/\/[gimy]\{,4}\d\@!/
+\                      oneline contains=@coffeeBasicString
+hi def link coffeeRegex String
+
+" A heregex
+syn region coffeeHeregex start=/\/\/\// end=/\/\/\/[gimy]\{,4}/
+\                        contains=@coffeeInterpString,coffeeHeregexComment
+\                        fold
+hi def link coffeeHeregex coffeeRegex
+
+" Heredoc strings
+syn region coffeeHeredoc start=/"""/ end=/"""/ contains=@coffeeInterpString
+\                        fold
+syn region coffeeHeredoc start=/'''/ end=/'''/ contains=@coffeeBasicString
+\                        fold
+hi def link coffeeHeredoc String
+
+" An error for trailing whitespace, as long as the line isn't just whitespace
+if !exists("coffee_no_trailing_space_error")
+  syn match coffeeSpaceError /\S\@<=\s\+$/ display
+  hi def link coffeeSpaceError Error
+endif
+
+" An error for trailing semicolons, for help transitioning from JavaScript
+if !exists("coffee_no_trailing_semicolon_error")
+  syn match coffeeSemicolonError /;$/ display
+  hi def link coffeeSemicolonError Error
+endif
+
+" Ignore reserved words in dot accesses.
+syn match coffeeDotAccess /\.\@<!\.\s*\I\i*/he=s+1 contains=@coffeeIdentifier
+hi def link coffeeDotAccess coffeeExtendedOp
+
+" Ignore reserved words in prototype accesses.
+syn match coffeeProtoAccess /::\s*\I\i*/he=s+2 contains=@coffeeIdentifier
+hi def link coffeeProtoAccess coffeeExtendedOp
+
+" This is required for interpolations to work.
+syn region coffeeCurlies matchgroup=coffeeCurly start=/{/ end=/}/
+\                        contains=@coffeeAll
+syn region coffeeBrackets matchgroup=coffeeBracket start=/\[/ end=/\]/
+\                         contains=@coffeeAll
+syn region coffeeParens matchgroup=coffeeParen start=/(/ end=/)/
+\                       contains=@coffeeAll
+
+" These are highlighted the same as commas since they tend to go together.
+hi def link coffeeBlock coffeeSpecialOp
+hi def link coffeeBracket coffeeBlock
+hi def link coffeeCurly coffeeBlock
+hi def link coffeeParen coffeeBlock
+
+" This is used instead of TOP to keep things coffee-specific for good
+" embedding. `contained` groups aren't included.
+syn cluster coffeeAll contains=coffeeStatement,coffeeRepeat,coffeeConditional,
+\                              coffeeException,coffeeKeyword,coffeeOperator,
+\                              coffeeExtendedOp,coffeeSpecialOp,coffeeBoolean,
+\                              coffeeGlobal,coffeeSpecialVar,coffeeObject,
+\                              coffeeConstant,coffeeString,coffeeNumber,
+\                              coffeeFloat,coffeeReservedError,coffeeObjAssign,
+\                              coffeeComment,coffeeBlockComment,coffeeEmbed,
+\                              coffeeRegex,coffeeHeregex,coffeeHeredoc,
+\                              coffeeSpaceError,coffeeSemicolonError,
+\                              coffeeDotAccess,coffeeProtoAccess,
+\                              coffeeCurlies,coffeeBrackets,coffeeParens
+
+if !exists('b:current_syntax')
+  let b:current_syntax = 'coffee'
+endif

File .vim/syntax/eco.vim

+" Vim syntax file
+" Language:		eco
+" Maintainer:		Jay Adkisson
+" Mostly stolen from eruby.vim
+
+if !exists("g:eco_default_subtype")
+  let g:eco_default_subtype = "html"
+endif
+
+if !exists("b:eco_subtype")
+  let s:lines = getline(1)."\n".getline(2)."\n".getline(3)."\n".getline(4)."\n".getline(5)."\n".getline("$")
+  let b:eco_subtype = matchstr(s:lines,'eco_subtype=\zs\w\+')
+  if b:eco_subtype == ''
+    let b:eco_subtype = matchstr(substitute(expand("%:t"),'\c\%(\.eco\)\+$','',''),'\.\zs\w\+$')
+  endif
+  if b:eco_subtype == 'rhtml'
+    let b:eco_subtype = 'html'
+  elseif b:eco_subtype == 'jst'
+    let b:eco_subtype = 'html'
+  elseif b:eco_subtype == 'rb'
+    let b:eco_subtype = 'ruby'
+  elseif b:eco_subtype == 'yml'
+    let b:eco_subtype = 'yaml'
+  elseif b:eco_subtype == 'js' || b:eco_subtype == 'json'
+    let b:eco_subtype = 'javascript'
+  elseif b:eco_subtype == 'txt'
+    " Conventional; not a real file type
+    let b:eco_subtype = 'text'
+  elseif b:eco_subtype == ''
+    if exists('b:current_syntax') && b:current_syntax != ''
+      let b:eco_subtype = b:current_syntax
+    else
+      let b:eco_subtype = g:eco_default_subtype
+    endif
+  endif
+endif
+
+if exists("b:eco_subtype") && b:eco_subtype != '' && b:eco_subtype != 'eco'
+  exec "runtime! syntax/".b:eco_subtype.".vim"
+  syn include @coffeeTop syntax/coffee.vim
+endif
+
+syn cluster ecoRegions contains=ecoBlock,ecoExpression,ecoComment
+
+syn region ecoBlock      matchgroup=ecoDelimiter start=/<%/      end=/%>/ contains=@coffeeTop containedin=ALLBUT,@ecoRegions keepend
+syn region ecoExpression matchgroup=ecoDelimiter start=/<%[=\-]/ end=/%>/ contains=@coffeeTop containedin=ALLBUT,@ecoRegions keepend
+syn region ecoComment    matchgroup=ecoComment   start=/<%#/     end=/%>/ contains=@coffeeTodo,@Spell containedin=ALLBUT,@ecoRegions keepend
+
+" eco features not in coffeescript proper
+syn keyword ecoEnd end containedin=@ecoRegions
+syn match ecoIndentColon /\s+\w+:/ containedin=@ecoRegions
+
+" Define the default highlighting.
+
+hi def link ecoDelimiter    Delimiter
+hi def link ecoComment      Comment
+hi def link ecoEnd          coffeeConditional
+hi def link ecoIndentColon  None
+
+let b:current_syntax = 'eco'
+
+" vim: nowrap sw=2 sts=2 ts=8:
+set expandtab
+set shiftwidth=2 
+set tabstop=2
+set autoindent
+set ruler
+set number
+set backupdir=~/.vim/tmp
+set laststatus=2
+syntax on
+if has("gui_running")
+  set hlsearch
+  set cursorcolumn
+  let moria_style = 'dark'
+  let moria_monochrome = 1
+  colorscheme moria
+endif
+if has("statusline")
+ set statusline=%<%f\ %h%m%r%=%{\"[\".(&fenc==\"\"?&enc:&fenc).((exists(\"+bomb\")\ &&\ &bomb)?\",B\":\"\").\"]\ \"}%k\ %-14.(%l,%c%V%)\ %P
+endif