Skip to content

Instantly share code, notes, and snippets.

@travisnewman
Created March 9, 2016 15:05
Show Gist options
  • Select an option

  • Save travisnewman/d634b0bb3010cf556ba3 to your computer and use it in GitHub Desktop.

Select an option

Save travisnewman/d634b0bb3010cf556ba3 to your computer and use it in GitHub Desktop.

Revisions

  1. travisnewman created this gist Mar 9, 2016.
    72 changes: 72 additions & 0 deletions .vimrc
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,72 @@
    set nocompatible
    filetype off

    " set the runtime path to include Vundle and initialize
    set rtp+=~/.vim/bundle/Vundle.vim
    call vundle#begin()
    " alternatively, pass a path where Vundle should install plugins
    "call vundle#begin('~/some/path/here')

    " let Vundle manage Vundle, required
    Plugin 'VundleVim/Vundle.vim'

    " vim fugitive git wrapper
    Plugin 'tpope/vim-fugitive'
    " L9 scripts
    Plugin 'L9'
    " Sparkup 'zen coding' style plugin with some improvements
    Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}
    " vim airline
    Plugin 'vim-airline/vim-airline'
    Plugin 'vim-airline/vim-airline-themes'
    " nerd tree
    Plugin 'scrooloose/nerdTree'
    Plugin 'Xuyuanp/nerdtree-git-plugin'
    " YouCompleteMe
    Plugin 'Valloric/YouCompleteMe'
    " TernJS for better JS completion
    Plugin 'ternjs/tern_for_vim'

    " All of your Plugins must be added before the following line
    call vundle#end() " required
    filetype plugin indent on " required

    " nerdtree config to make it start by default, and quit if nerdtree is the
    " only buffer
    autocmd StdinReadPre * let s:std_in=1
    autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif
    map <C-n> :NERDTreeToggle<CR>
    autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif

    " syntax highlighting
    syn on

    " mouse
    set ttyfast
    set mouse=a
    " this isn't needed in nvim
    if !has('nvim')
    set ttymouse=xterm2
    endif

    " airline theme
    let g:airline_theme='base16_ocean'

    " pretty colors
    if $TERM =~ '-256color'
    set t_Co=256
    endif
    set background=dark
    " colorscheme file below. Put this in .vim/colors
    colorscheme base16-ocean

    " powerline fonts
    let g:airline_powerline_fonts = 1

    " tab stops
    " show existing tab with 4 spaces width
    set tabstop=4
    " when indenting with '>', use 4 spaces width
    set shiftwidth=4
    " On pressing tab, insert 4 spaces
    set expandtab
    285 changes: 285 additions & 0 deletions base16-ocean.vim
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,285 @@
    " Base16 Ocean (https://github.com/chriskempson/base16)
    " Scheme: Chris Kempson (http://chriskempson.com)

    " GUI color definitions
    let s:gui00 = "2b303b"
    let s:gui01 = "343d46"
    let s:gui02 = "4f5b66"
    let s:gui03 = "65737e"
    let s:gui04 = "a7adba"
    let s:gui05 = "c0c5ce"
    let s:gui06 = "dfe1e8"
    let s:gui07 = "eff1f5"
    let s:gui08 = "bf616a"
    let s:gui09 = "d08770"
    let s:gui0A = "ebcb8b"
    let s:gui0B = "a3be8c"
    let s:gui0C = "96b5b4"
    let s:gui0D = "8fa1b3"
    let s:gui0E = "b48ead"
    let s:gui0F = "ab7967"

    " Terminal color definitions
    let s:cterm00 = "Black"
    let s:cterm03 = "DarkGray"
    let s:cterm05 = "Gray"
    let s:cterm07 = "White"
    let s:cterm08 = "DarkRed"
    let s:cterm0A = "Brown"
    let s:cterm0B = "DarkGreen"
    let s:cterm0C = "DarkCyan"
    let s:cterm0D = "DarkBlue"
    let s:cterm0E = "DarkMagenta"
    if exists('base16colorspace') && base16colorspace == "256"
    let s:cterm01 = "18"
    let s:cterm02 = "19"
    let s:cterm04 = "20"
    let s:cterm06 = "21"
    let s:cterm09 = "16"
    let s:cterm0F = "17"
    else
    let s:cterm01 = "Green"
    let s:cterm02 = "Yellow"
    let s:cterm04 = "Blue"
    let s:cterm06 = "Magenta"
    let s:cterm09 = "Red"
    let s:cterm0F = "Cyan"
    endif

    " Theme setup
    hi clear
    syntax reset
    let g:colors_name = "base16-ocean"

    " Highlighting function
    fun <sid>hi(group, guifg, guibg, ctermfg, ctermbg, attr)
    if a:guifg != ""
    exec "hi " . a:group . " guifg=#" . s:gui(a:guifg)
    endif
    if a:guibg != ""
    exec "hi " . a:group . " guibg=#" . s:gui(a:guibg)
    endif
    if a:ctermfg != ""
    exec "hi " . a:group . " ctermfg=" . s:cterm(a:ctermfg)
    endif
    if a:ctermbg != ""
    exec "hi " . a:group . " ctermbg=" . s:cterm(a:ctermbg)
    endif
    if a:attr != ""
    exec "hi " . a:group . " gui=" . a:attr . " cterm=" . a:attr
    endif
    endfun

    " Return GUI color for light/dark variants
    fun s:gui(color)
    if &background == "dark"
    return a:color
    endif

    if a:color == s:gui00
    return s:gui07
    elseif a:color == s:gui01
    return s:gui06
    elseif a:color == s:gui02
    return s:gui05
    elseif a:color == s:gui03
    return s:gui04
    elseif a:color == s:gui04
    return s:gui03
    elseif a:color == s:gui05
    return s:gui02
    elseif a:color == s:gui06
    return s:gui01
    elseif a:color == s:gui07
    return s:gui00
    endif

    return a:color
    endfun

    " Return terminal color for light/dark variants
    fun s:cterm(color)
    if &background == "dark"
    return a:color
    endif

    if a:color == s:cterm00
    return s:cterm07
    elseif a:color == s:cterm01
    return s:cterm06
    elseif a:color == s:cterm02
    return s:cterm05
    elseif a:color == s:cterm03
    return s:cterm04
    elseif a:color == s:cterm04
    return s:cterm03
    elseif a:color == s:cterm05
    return s:cterm02
    elseif a:color == s:cterm06
    return s:cterm01
    elseif a:color == s:cterm07
    return s:cterm00
    endif

    return a:color
    endfun

    " Vim editor colors
    call <sid>hi("Bold", "", "", "", "", "bold")
    call <sid>hi("Debug", s:gui08, "", s:cterm08, "", "")
    call <sid>hi("Directory", s:gui0D, "", s:cterm0D, "", "")
    call <sid>hi("ErrorMsg", s:gui08, s:gui00, s:cterm08, s:cterm00, "")
    call <sid>hi("Exception", s:gui08, "", s:cterm08, "", "")
    call <sid>hi("FoldColumn", "", s:gui01, "", s:cterm01, "")
    call <sid>hi("Folded", s:gui03, s:gui01, s:cterm03, s:cterm01, "")
    call <sid>hi("IncSearch", s:gui01, s:gui0A, s:cterm01, s:cterm0A, "none")
    call <sid>hi("Italic", "", "", "", "", "none")
    call <sid>hi("Macro", s:gui08, "", s:cterm08, "", "")
    call <sid>hi("MatchParen", s:gui00, s:gui03, s:cterm00, s:cterm03, "")
    call <sid>hi("ModeMsg", s:gui0B, "", s:cterm0B, "", "")
    call <sid>hi("MoreMsg", s:gui0B, "", s:cterm0B, "", "")
    call <sid>hi("Question", s:gui0A, "", s:cterm0A, "", "")
    call <sid>hi("Search", s:gui01, s:gui0A, s:cterm01, s:cterm0A, "")
    call <sid>hi("SpecialKey", s:gui03, "", s:cterm03, "", "")
    call <sid>hi("TooLong", s:gui08, "", s:cterm08, "", "")
    call <sid>hi("Underlined", s:gui08, "", s:cterm08, "", "")
    call <sid>hi("Visual", "", s:gui02, "", s:cterm02, "")
    call <sid>hi("VisualNOS", s:gui08, "", s:cterm08, "", "")
    call <sid>hi("WarningMsg", s:gui08, "", s:cterm08, "", "")
    call <sid>hi("WildMenu", s:gui08, "", s:cterm08, "", "")
    call <sid>hi("Title", s:gui0D, "", s:cterm0D, "", "none")
    call <sid>hi("Conceal", s:gui0D, s:gui00, s:cterm0D, s:cterm00, "")
    call <sid>hi("Cursor", s:gui00, s:gui05, s:cterm00, s:cterm05, "")
    call <sid>hi("NonText", s:gui03, "", s:cterm03, "", "")
    call <sid>hi("Normal", s:gui05, s:gui00, s:cterm05, s:cterm00, "")
    call <sid>hi("LineNr", s:gui03, s:gui01, s:cterm03, s:cterm01, "")
    call <sid>hi("SignColumn", s:gui03, s:gui01, s:cterm03, s:cterm01, "")
    call <sid>hi("SpecialKey", s:gui03, "", s:cterm03, "", "")
    call <sid>hi("StatusLine", s:gui04, s:gui02, s:cterm04, s:cterm02, "none")
    call <sid>hi("StatusLineNC", s:gui03, s:gui01, s:cterm03, s:cterm01, "none")
    call <sid>hi("VertSplit", s:gui02, s:gui02, s:cterm02, s:cterm02, "none")
    call <sid>hi("ColorColumn", "", s:gui01, "", s:cterm01, "none")
    call <sid>hi("CursorColumn", "", s:gui01, "", s:cterm01, "none")
    call <sid>hi("CursorLine", "", s:gui01, "", s:cterm01, "none")
    call <sid>hi("CursorLineNr", s:gui03, s:gui01, s:cterm03, s:cterm01, "")
    call <sid>hi("PMenu", s:gui04, s:gui01, s:cterm04, s:cterm01, "none")
    call <sid>hi("PMenuSel", s:gui01, s:gui04, s:cterm01, s:cterm04, "")
    call <sid>hi("TabLine", s:gui03, s:gui01, s:cterm03, s:cterm01, "none")
    call <sid>hi("TabLineFill", s:gui03, s:gui01, s:cterm03, s:cterm01, "none")
    call <sid>hi("TabLineSel", s:gui0B, s:gui01, s:cterm0B, s:cterm01, "none")

    " Standard syntax highlighting
    call <sid>hi("Boolean", s:gui09, "", s:cterm09, "", "")
    call <sid>hi("Character", s:gui08, "", s:cterm08, "", "")
    call <sid>hi("Comment", s:gui03, "", s:cterm03, "", "")
    call <sid>hi("Conditional", s:gui0E, "", s:cterm0E, "", "")
    call <sid>hi("Constant", s:gui09, "", s:cterm09, "", "")
    call <sid>hi("Define", s:gui0E, "", s:cterm0E, "", "none")
    call <sid>hi("Delimiter", s:gui0F, "", s:cterm0F, "", "")
    call <sid>hi("Float", s:gui09, "", s:cterm09, "", "")
    call <sid>hi("Function", s:gui0D, "", s:cterm0D, "", "")
    call <sid>hi("Identifier", s:gui08, "", s:cterm08, "", "none")
    call <sid>hi("Include", s:gui0D, "", s:cterm0D, "", "")
    call <sid>hi("Keyword", s:gui0E, "", s:cterm0E, "", "")
    call <sid>hi("Label", s:gui0A, "", s:cterm0A, "", "")
    call <sid>hi("Number", s:gui09, "", s:cterm09, "", "")
    call <sid>hi("Operator", s:gui05, "", s:cterm05, "", "none")
    call <sid>hi("PreProc", s:gui0A, "", s:cterm0A, "", "")
    call <sid>hi("Repeat", s:gui0A, "", s:cterm0A, "", "")
    call <sid>hi("Special", s:gui0C, "", s:cterm0C, "", "")
    call <sid>hi("SpecialChar", s:gui0F, "", s:cterm0F, "", "")
    call <sid>hi("Statement", s:gui08, "", s:cterm08, "", "")
    call <sid>hi("StorageClass", s:gui0A, "", s:cterm0A, "", "")
    call <sid>hi("String", s:gui0B, "", s:cterm0B, "", "")
    call <sid>hi("Structure", s:gui0E, "", s:cterm0E, "", "")
    call <sid>hi("Tag", s:gui0A, "", s:cterm0A, "", "")
    call <sid>hi("Todo", s:gui0A, s:gui01, s:cterm0A, s:cterm01, "")
    call <sid>hi("Type", s:gui09, "", s:cterm09, "", "none")
    call <sid>hi("Typedef", s:gui0A, "", s:cterm0A, "", "")

    " Spelling highlighting
    call <sid>hi("SpellBad", "", s:gui00, "", s:cterm00, "undercurl")
    call <sid>hi("SpellLocal", "", s:gui00, "", s:cterm00, "undercurl")
    call <sid>hi("SpellCap", "", s:gui00, "", s:cterm00, "undercurl")
    call <sid>hi("SpellRare", "", s:gui00, "", s:cterm00, "undercurl")

    " Additional diff highlighting
    call <sid>hi("DiffAdd", s:gui0B, s:gui00, s:cterm0B, s:cterm00, "")
    call <sid>hi("DiffChange", s:gui0D, s:gui00, s:cterm0D, s:cterm00, "")
    call <sid>hi("DiffDelete", s:gui08, s:gui00, s:cterm08, s:cterm00, "")
    call <sid>hi("DiffText", s:gui0D, s:gui00, s:cterm0D, s:cterm00, "")
    call <sid>hi("DiffAdded", s:gui0B, s:gui00, s:cterm0B, s:cterm00, "")
    call <sid>hi("DiffFile", s:gui08, s:gui00, s:cterm08, s:cterm00, "")
    call <sid>hi("DiffNewFile", s:gui0B, s:gui00, s:cterm0B, s:cterm00, "")
    call <sid>hi("DiffLine", s:gui0D, s:gui00, s:cterm0D, s:cterm00, "")
    call <sid>hi("DiffRemoved", s:gui08, s:gui00, s:cterm08, s:cterm00, "")

    " Ruby highlighting
    call <sid>hi("rubyAttribute", s:gui0D, "", s:cterm0D, "", "")
    call <sid>hi("rubyConstant", s:gui0A, "", s:cterm0A, "", "")
    call <sid>hi("rubyInterpolation", s:gui0B, "", s:cterm0B, "", "")
    call <sid>hi("rubyInterpolationDelimiter", s:gui0F, "", s:cterm0F, "", "")
    call <sid>hi("rubyRegexp", s:gui0C, "", s:cterm0C, "", "")
    call <sid>hi("rubySymbol", s:gui0B, "", s:cterm0B, "", "")
    call <sid>hi("rubyStringDelimiter", s:gui0B, "", s:cterm0B, "", "")

    " PHP highlighting
    call <sid>hi("phpMemberSelector", s:gui05, "", s:cterm05, "", "")
    call <sid>hi("phpComparison", s:gui05, "", s:cterm05, "", "")
    call <sid>hi("phpParent", s:gui05, "", s:cterm05, "", "")

    " HTML highlighting
    call <sid>hi("htmlBold", s:gui0A, "", s:cterm0A, "", "")
    call <sid>hi("htmlItalic", s:gui0E, "", s:cterm0E, "", "")
    call <sid>hi("htmlEndTag", s:gui05, "", s:cterm05, "", "")
    call <sid>hi("htmlTag", s:gui05, "", s:cterm05, "", "")

    " CSS highlighting
    call <sid>hi("cssBraces", s:gui05, "", s:cterm05, "", "")
    call <sid>hi("cssClassName", s:gui0E, "", s:cterm0E, "", "")
    call <sid>hi("cssColor", s:gui0C, "", s:cterm0C, "", "")

    " SASS highlighting
    call <sid>hi("sassidChar", s:gui08, "", s:cterm08, "", "")
    call <sid>hi("sassClassChar", s:gui09, "", s:cterm09, "", "")
    call <sid>hi("sassInclude", s:gui0E, "", s:cterm0E, "", "")
    call <sid>hi("sassMixing", s:gui0E, "", s:cterm0E, "", "")
    call <sid>hi("sassMixinName", s:gui0D, "", s:cterm0D, "", "")

    " JavaScript highlighting
    call <sid>hi("javaScript", s:gui05, "", s:cterm05, "", "")
    call <sid>hi("javaScriptBraces", s:gui05, "", s:cterm05, "", "")
    call <sid>hi("javaScriptNumber", s:gui09, "", s:cterm09, "", "")

    " Markdown highlighting
    call <sid>hi("markdownCode", s:gui0B, "", s:cterm0B, "", "")
    call <sid>hi("markdownCodeBlock", s:gui0B, "", s:cterm0B, "", "")
    call <sid>hi("markdownHeadingDelimiter", s:gui0D, "", s:cterm0D, "", "")

    " Git highlighting
    call <sid>hi("gitCommitOverflow", s:gui08, "", s:cterm08, "", "")
    call <sid>hi("gitCommitSummary", s:gui0B, "", s:cterm0B, "", "")

    " GitGutter highlighting
    call <sid>hi("GitGutterAdd", s:gui0B, s:gui01, s:cterm0B, s:cterm01, "")
    call <sid>hi("GitGutterChange", s:gui0D, s:gui01, s:cterm0D, s:cterm01, "")
    call <sid>hi("GitGutterDelete", s:gui08, s:gui01, s:cterm08, s:cterm01, "")

    " Signify highlighting
    call <sid>hi("SignifySignAdd", s:gui0B, s:gui01, s:cterm0B, s:cterm01, "")
    call <sid>hi("SignifySignChange", s:gui0D, s:gui01, s:cterm0D, s:cterm01, "")
    call <sid>hi("SignifySignDelete", s:gui08, s:gui01, s:cterm08, s:cterm01, "")


    " GitGutter highlighting
    call <sid>hi("NERDTreeDirSlash", s:gui0D, "", s:cterm0D, "", "")
    call <sid>hi("NERDTreeExecFile", s:gui05, "", s:cterm05, "", "")

    " Remove functions
    delf <sid>hi
    delf <sid>gui
    delf <sid>cterm

    " Remove color variables
    unlet s:gui00 s:gui01 s:gui02 s:gui03 s:gui04 s:gui05 s:gui06 s:gui07 s:gui08 s:gui09 s:gui0A s:gui0B s:gui0C s:gui0D s:gui0E s:gui0F
    unlet s:cterm00 s:cterm01 s:cterm02 s:cterm03 s:cterm04 s:cterm05 s:cterm06 s:cterm07 s:cterm08 s:cterm09 s:cterm0A s:cterm0B s:cterm0C s:cterm0D s:cterm0E s:cterm0F