" File: monokai.vim " Maintainer: Erich Gubler (erichdongubler) " URL: https://github.com/erichdongubler/vim-sublime-monokai " License: MIT " Initialisation if !has('gui_running') && &t_Co < 256 finish endif if !exists('g:sublimemonokai_gui_italic') let g:sublimemonokai_gui_italic = 1 endif if !exists('g:sublimemonokai_term_italic') let g:sublimemonokai_term_italic = 0 endif let g:sublimemonokai_termcolors = 256 " does not support 16 color term right now. set background=dark hi clear if exists('syntax_on') syntax reset endif let colors_name = 'sublimemonokai' fun! s:h(group, style) let s:ctermformat = 'NONE' let s:guiformat = 'NONE' if has_key(a:style, 'format') let s:ctermformat = a:style.format let s:guiformat = a:style.format endif if g:sublimemonokai_term_italic == 0 let s:ctermformat = substitute(s:ctermformat, ',italic', '', '') let s:ctermformat = substitute(s:ctermformat, 'italic,', '', '') let s:ctermformat = substitute(s:ctermformat, 'italic', '', '') endif if g:sublimemonokai_gui_italic == 0 let s:guiformat = substitute(s:guiformat, ',italic', '', '') let s:guiformat = substitute(s:guiformat, 'italic,', '', '') let s:guiformat = substitute(s:guiformat, 'italic', '', '') endif if g:sublimemonokai_termcolors == 16 let l:ctermfg = (has_key(a:style, 'fg') ? a:style.fg.cterm16 : 'NONE') let l:ctermbg = (has_key(a:style, 'bg') ? a:style.bg.cterm16 : 'NONE') else let l:ctermfg = (has_key(a:style, 'fg') ? a:style.fg.cterm : 'NONE') let l:ctermbg = (has_key(a:style, 'bg') ? a:style.bg.cterm : 'NONE') end execute 'highlight' a:group \ 'guifg=' (has_key(a:style, 'fg') ? a:style.fg.gui : 'NONE') \ 'guibg=' (has_key(a:style, 'bg') ? a:style.bg.gui : 'NONE') \ 'guisp=' (has_key(a:style, 'sp') ? a:style.sp.gui : 'NONE') \ 'gui=' (!empty(s:guiformat) ? s:guiformat : 'NONE') \ 'ctermfg=' . l:ctermfg \ 'ctermbg=' . l:ctermbg \ 'cterm=' (!empty(s:ctermformat) ? s:ctermformat : 'NONE') endfunction " Expose the more complicated style setting via a global function fun! g:SublimeMonokaiHighlight(group, style) return s:h(a:group, a:style) endfun " Palette " Convenience function to have a convenient script variable name and an " namespaced global variable fun! s:create_palette_color(color_name, color_data) exec 'let s:' . a:color_name . ' = a:color_data' exec 'let g:sublimemonokai_' . a:color_name . ' = a:color_data' endf call s:create_palette_color('brightwhite', { 'gui': '#FFFFFF', 'cterm': '231' }) call s:create_palette_color('white', { 'gui': '#E8E8E3', 'cterm': '252' }) call s:create_palette_color('black', { 'gui': '#272822', 'cterm': '234' }) call s:create_palette_color('lightblack', { 'gui': '#2D2E27', 'cterm': '235' }) call s:create_palette_color('lightblack2', { 'gui': '#383a3e', 'cterm': '236' }) call s:create_palette_color('darkblack', { 'gui': '#211F1C', 'cterm': '233' }) call s:create_palette_color('grey', { 'gui': '#8F908A', 'cterm': '243' }) call s:create_palette_color('lightgrey', { 'gui': '#575b61', 'cterm': '237' }) call s:create_palette_color('darkgrey', { 'gui': '#64645e', 'cterm': '239' }) call s:create_palette_color('warmgrey', { 'gui': '#75715E', 'cterm': '59' }) call s:create_palette_color('pink', { 'gui': '#f92772', 'cterm': '197' }) call s:create_palette_color('green', { 'gui': '#a6e22d', 'cterm': '148' }) call s:create_palette_color('aqua', { 'gui': '#66d9ef', 'cterm': '81' }) call s:create_palette_color('yellow', { 'gui': '#e6db74', 'cterm': '186' }) call s:create_palette_color('orange', { 'gui': '#fd9720', 'cterm': '208' }) call s:create_palette_color('purple', { 'gui': '#ae81ff', 'cterm': '141' }) call s:create_palette_color('red', { 'gui': '#e73c50', 'cterm': '196' }) call s:create_palette_color('darkred', { 'gui': '#5f0000', 'cterm': '52' }) call s:create_palette_color('addfg', { 'gui': '#d7ffaf', 'cterm': '193' }) call s:create_palette_color('addbg', { 'gui': '#5f875f', 'cterm': '65' }) call s:create_palette_color('delbg', { 'gui': '#f75f5f', 'cterm': '167' }) call s:create_palette_color('changefg', { 'gui': '#d7d7ff', 'cterm': '189' }) call s:create_palette_color('changebg', { 'gui': '#5f5f87', 'cterm': '60' }) " Expose the foreground colors of the Sublime palette as a bunch of " highlighting groups. This lets us (and users!) get tab completion for the `hi " link` command, and use more semantic names for the colors we want to assign " to groups call s:h('SublimeBrightWhite', { 'fg': s:brightwhite }) call s:h('SublimeWhite', { 'fg': s:white }) call s:h('SublimeBlack', { 'fg': s:black }) call s:h('SublimeLightBlack', { 'fg': s:lightblack }) call s:h('SublimeLightBlack2', { 'fg': s:lightblack2 }) call s:h('SublimeDarkBlack', { 'fg': s:darkblack }) call s:h('SublimeGrey', { 'fg': s:grey }) call s:h('SublimeLightGrey', { 'fg': s:lightgrey }) call s:h('SublimeDarkGrey', { 'fg': s:darkgrey }) call s:h('SublimeWarmGrey', { 'fg': s:warmgrey }) call s:h('SublimePink', { 'fg': s:pink }) call s:h('SublimeGreen', { 'fg': s:green }) call s:h('SublimeAqua', { 'fg': s:aqua }) call s:h('SublimeYellow', { 'fg': s:yellow }) call s:h('SublimeOrange', { 'fg': s:orange }) call s:h('SublimePurple', { 'fg': s:purple }) call s:h('SublimeRed', { 'fg': s:red }) call s:h('SublimeDarkRed', { 'fg': s:darkred }) " Default highlight groups (see ':help highlight-default' or http://vimdoc.sourceforge.net/htmldoc/syntax.html#highlight-groups) call s:h('ColorColumn', { 'bg': s:lightblack2 }) hi! link Conceal SublimeLightGrey call s:h('CursorColumn', { 'bg': s:lightblack2 }) call s:h('CursorLine', { 'bg': s:lightblack2 }) call s:h('CursorLineNr', { 'fg': s:orange, 'bg': s:lightblack }) call s:h('DiffAdd', { 'fg': s:addfg, 'bg': s:addbg }) call s:h('DiffChange', { 'fg': s:changefg, 'bg': s:changebg }) call s:h('DiffDelete', { 'fg': s:black, 'bg': s:delbg }) call s:h('DiffText', { 'fg': s:black, 'bg': s:aqua }) hi! link Directory SublimeAqua call s:h('ErrorMsg', { 'fg': s:black, 'bg': s:red, 'format': 'standout' }) hi! link FoldColumn SublimeDarkBlack call s:h('Folded', { 'fg': s:warmgrey, 'bg': s:darkblack }) call s:h('Incsearch', { }) call s:h('LineNr', { 'fg': s:grey, 'bg': s:lightblack }) call s:h('MatchParen', { 'format': 'reverse' }) hi! link ModeMsg SublimeYellow hi! link MoreMsg SublimeYellow hi! link NonText SublimeLightGrey call s:h('Normal', { 'fg': s:white, 'bg': s:black }) call s:h('Pmenu', { 'fg': s:lightblack, 'bg': s:white }) call s:h('PmenuSbar', { }) call s:h('PmenuSel', { 'fg': s:aqua, 'bg': s:black, 'format': 'reverse,bold' }) call s:h('PmenuThumb', { 'fg': s:lightblack, 'bg': s:grey }) hi! link Question SublimeYellow call s:h('Search', { 'format': 'reverse,underline' }) hi! link SignColumn SublimeLightBlack hi! link SpecialKey SublimeLightBlack2 call s:h('StatusLine', { 'fg': s:warmgrey, 'bg': s:black, 'format': 'reverse' }) call s:h('StatusLineNC', { 'fg': s:darkgrey, 'bg': s:warmgrey, 'format': 'reverse' }) call s:h('TabLine', { 'fg': s:white, 'bg': s:darkgrey }) call s:h('TabLineFill', { 'fg': s:grey, 'bg': s:darkgrey }) call s:h('TabLineSel', { 'fg': s:brightwhite, 'bg': s:white }) hi! link Title SublimeYellow call s:h('VertSplit', { 'fg': s:darkgrey, 'bg': s:darkblack }) call s:h('Visual', { 'bg': s:lightgrey }) hi! link WarningMsg SublimeRed " Generic Syntax Highlighting (see reference: 'NAMING CONVENTIONS' at http://vimdoc.sourceforge.net/htmldoc/syntax.html#group-name) hi! link Comment SublimeWarmGrey hi! link Constant SublimePurple hi! link String SublimeYellow hi! link Character SublimeYellow hi! link Number SublimePurple hi! link Boolean SublimePurple hi! link Float SublimePurple hi! link Identifier SublimeWhite hi! link Function SublimeWhite hi! link Type SublimeAqua hi! link StorageClass SublimePink hi! link Structure SublimePink hi! link Typedef SublimeAqua hi! link Statement SublimeWhite hi! link Conditional SublimePink hi! link Repeat SublimePink hi! link Label SublimePink hi! link Operator SublimePink hi! link Keyword SublimePink hi! link Exception SublimePink call s:h('CommentURL', { 'fg': s:grey, 'format': 'italic' }) hi! link PreProc SublimeGreen hi! link Include SublimeWhite hi! link Define SublimePink hi! link Macro SublimeGreen hi! link PreCondit SublimeWhite hi! link Special SublimePurple hi! link SpecialChar SublimePink hi! link Tag SublimeGreen hi! link Delimiter SublimePink hi! link SpecialComment SublimeAqua " call s:h('Debug' {}) call s:h('Underlined', { 'format': 'underline' }) " call s:h('Ignore', {}) call s:h('Error', { 'fg': s:red, 'bg': s:darkred }) hi! link Todo Comment " Some highlighting groups custom to the Sublime Monokai theme call s:h('SublimeType', { 'fg': s:aqua, 'format': 'italic' }) call s:h('SublimeContextParam', { 'fg': s:orange, 'format': 'italic' }) hi! link SublimeDocumentation SublimeGrey hi! link SublimeFunctionCall SublimeAqua hi! link SublimeUserAttribute SublimeGrey " Bash/POSIX shell hi! link shConditional Conditional hi! link shDerefOff Normal hi! link shDerefSimple SublimeAqua hi! link shDerefVar SublimeAqua hi! link shFunctionKey SublimePink hi! link shLoop Keyword hi! link shQuote String hi! link shSet Keyword hi! link shStatement SublimePink " XXX: Other noted deficiencies " * Can't highlight POSIX builtins right because shStatement is later in the " highlight stack " * Can't override shOption to be "normal" because it could be within a string " or substitution. It looks okay anyway. :) " * shCommandSub can't be override for a similar reason to shOption " * Boolean operators and subsequent commands don't have the right " highlighting " Batch hi! link dosbatchImplicit Keyword hi! link dosbatchLabel Normal " FIXME: This should have its own group, like SublimeEscapedSequence hi! link dosbatchSpecialChar SublimePurple hi! link dosbatchSwitch Normal " FIXME: Variables don't have their own highlighting in Sublime " hi! link dosbatchVariable SublimeAqua " XXX: string highlight is used for echo commands, but Sublime doesn't " highlight at all " XXX: Sublime sets everything to the right of an assignment to be a string " color, but Vim doesn't " XXX: Create an extra flag for "nice" stuff " hi! link dosbatchLabel Tag " hi! link dosbatchStatement Keyword " hi! link dosbatchSwitch SublimePurple " hi! link dosbatchVariable SublimeAqua " C hi! link cAnsiFunction SublimeFunctionCall hi! link cDefine SublimeGreen hi! link cFormat Special hi! link cInclude SublimePink hi! link cLabel SublimePink hi! link cSpecial Special hi! link cSpecialCharacter Special hi! link cStatement Keyword hi! link cStorageClass SublimePink hi! link cStructure SublimeType hi! link cType SublimeType " FIXME: Function definitions " CSS hi! link cssAttr SublimeAqua hi! link cssAttributeSelector Tag " XXX: Not sure about this one; it has issues with the following: " - calc " - colors hi! link cssAttrRegion Normal hi! link cssBraces Normal hi! link cssClassName Tag hi! link cssColor Constant hi! link cssFunctionName SublimeFunctionCall hi! link cssIdentifier Tag hi! link cssPositioningAttr SublimeAqua hi! link cssProp SublimeAqua " XXX: Variation: might be better as pink, actually hi! link cssPseudoClassId Normal hi! link cssSelectorOp Normal hi! link cssStyle cssAttr hi! link cssTagName Keyword " TODO: Find a way to distinguish unit decorators from color hash hi! link cssUnitDecorators SpecialChar hi! link cssURL String hi! link cssValueLength Constant " C++ " XXX: This is imperfect, as this highlights the expression for the `#if`s " too. hi! link cCppOutWrapper Keyword hi! link cppStatement Keyword " XXX: This is too inclusive of the `namespace` keyword hi! link cppStructure SublimeType hi! link cppSTLException SublimeType hi! link cppSTLfunction SublimeFunctionCall " XXX: There may be no special highlighting here in Sublime itself hi! link cppSTLios SublimeAqua " XXX: There may be no special highlighting here in Sublime itself hi! link cppSTLnamespace SublimePurple hi! link cppType SublimeType " C# hi! link csClass SublimeType hi! link csContextualStatement Keyword hi! link csIface SublimeType hi! link csMethodTag SublimeType hi! link csPreCondit Keyword hi! link csTypeDecleration SublimeType hi! link csType SublimeType hi! link csUnspecifiedStatement Keyword hi! link csXmlTag xmlTagName hi! link csXmlComment SublimeDocumentation " XXX: Other noted deficiencies: " * Need some local links for XML getting set to the right color " * Operators aren't red in Vim, but are in Sublime. " * Function arguments aren't distinguished with their own highlight group " * `namespace` is a type in Sublime's highlighting, but is a `csStorage` in " Vim " * No function call groups exist in Vim. " * Region highlighting has no way to distinguish between region " preprocess keyword and region name. " D hi! link dExternal Keyword " `diff` patch files hi! link diffAdded SublimeGreen hi! link diffFile SublimeWarmGrey hi! link diffIndexLine SublimeWarmGrey hi! link diffLine SublimeWarmGrey hi! link diffRemoved SublimePink hi! link diffSubname SublimeWarmGrey " eRuby " call s:h('erubyDelimiter', {}) hi! link erubyRailsMethod SublimeAqua " Git hi! link gitrebaseCommit Comment hi! link gitrebaseDrop Error hi! link gitrebaseEdit Keyword hi! link gitrebaseExec Keyword hi! link gitrebaseFixup Keyword " FIXME: Make this cooler in extensions! hi! link gitrebaseHash Comment hi! link gitrebasePick Keyword hi! link gitrebaseReword Keyword hi! link gitrebaseSquash Keyword hi! link gitrebaseSummary String " XXX: Note that highlighting inside the always-present help from Git in " comments is not available in vim's current highlighting version. " Variation: it's actually kinda nice to give each of these different colors " like vanilla Vim does. " vim-gitgutter hi! link GitGutterAdd SublimeGreen hi! link GitGutterChange SublimeYellow hi! link GitGutterDelete SublimePink hi! link GitGutterChangeDelete SublimeOrange " GraphViz " Variation: I actually like to keep these as Keyword, but Sublime does this " differently. hi! link dotBraceEncl Normal hi! link dotBrackEncl Normal " XXX: This colors way more stuff than Sublime does, but otherwise we'd miss " out on operator highlights like with equals signs in attribute value " definitions. hi! link dotKeyChar Keyword hi! link dotKeyword SublimeType " XXX: Other noted deficiencies: " * `graph` keyword isn't correctly classified into a keyword, Sublime does. " This can be fixed with `syn keyword dotKeyword graph`. " * Neither Sublime nor Vim highlight `--` in undirected graphs. " * Sublime doesn't treat semicolons as a keyword here, Vim does. " * Vim doesn't distinctly identify declarations like `digraph *blah* { ... }`. " * Vim doesn't have a group for escape chars (i.e., for `label` values). " HTML " This partially depends on XML -- make sure that groups in XML don't " adversely affect this! " XXX: This doesn't exclude things like colons like Sublime does " FIXME: For some reason this is excluding a "key" attribute hi! link htmlArg Tag " Variation: This is an interesting idea for hi! link htmlLink Normal hi! link htmlSpecialTagName htmlTagName hi! link htmlSpecialChar Special hi! link htmlTagName Keyword " Java hi! link javaConditional Keyword " FIXME: Javadoc @... doesn't work? hi! link javaExceptions Keyword hi! link javaFunction SublimeAqua " FIXME: This isn't a builtin...don't other languages use italics for types? hi! link javaNonPrimitiveType SublimeType hi! link javaRepeat Keyword hi! link javaSpecialChar Special hi! link javaStatement Keyword hi! link javaType SublimeType call s:h('jpropertiesIdentifier', { 'fg': s:pink }) " JavaScript hi! link jsArgsObj SublimeAqua hi! link jsArrowFunction SublimePink hi! link jsBuiltins SublimeFunctionCall hi! link jsCatch Keyword hi! link jsConditional Keyword call s:h('jsDocTags', { 'fg': s:aqua, 'format': 'italic' }) hi! link jsException Keyword " Variation: It's actually nice to get this italicized, to me hi! link jsExceptions Type hi! link jsExport Keyword hi! link jsFinally Keyword hi! link jsFrom Keyword call s:h('jsFuncArgRest', { 'fg': s:purple, 'format': 'italic' }) hi! link jsFuncArgs SublimeContextParam hi! link jsFuncCall SublimeFunctionCall hi! link jsFuncName Tag hi! link jsFunctionKey Tag " FIXME: FutureKeys includes a bit too much. It had some type names, which should be aqua, but most of the keywords that might actually get used would be pink (keywords like public, abstract). hi! link jsFutureKeys Keyword call s:h('jsGlobalObjects', { 'fg': s:aqua, 'format': 'italic' }) hi! link jsImport Keyword hi! link jsModuleAs Keyword hi! link jsModuleAsterisk Keyword hi! link jsNan Constant hi! link jsNull Constant hi! link jsObjectFuncName Tag hi! link jsPrototype SublimeAqua " Variation: Technically this is extra from Sublime, but it looks nice. hi! link jsRepeat Keyword hi! link jsReturn Keyword hi! link jsStatement Keyword hi! link jsStatic jsStorageClass hi! link jsStorageClass SublimeAqua hi! link jsSuper SublimeContextParam hi! link jsThis SublimeContextParam hi! link jsTry Keyword hi! link jsUndefined Constant " JSON hi! link jsonKeyword Normal " LESS hi! link lessVariable Tag " Makefile hi! link makeCommands Normal hi! link makeCmdNextLine Normal " NERDTree hi! link NERDTreeBookmarkName SublimeYellow hi! link NERDTreeBookmarksHeader SublimePink hi! link NERDTreeBookmarksLeader SublimeBlack hi! link NERDTreeCWD SublimePink hi! link NERDTreeClosable SublimeYellow hi! link NERDTreeDir SublimeYellow hi! link NERDTreeDirSlash SublimeGrey hi! link NERDTreeFlags SublimeDarkGrey hi! link NERDTreeHelp SublimeYellow hi! link NERDTreeOpenable SublimeYellow hi! link NERDTreeUp SublimeWhite " NERDTree Git hi! link NERDTreeGitStatusModified SublimeOrange hi! link NERDTreeGitStatusRenamed SublimeOrange hi! link NERDTreeGitStatusUntracked SublimeGreen " Python " This configuration assumed python-mode hi! link pythonConditional Conditional hi! link pythonException Keyword hi! link pythonFunction Tag hi! link pythonInclude Keyword " XXX: def parens are, for some reason, included in this group. hi! link pythonParam SublimeContextParam " XXX: pythonStatement covers a bit too much...unfortunately, this means that " some keywords, like `def`, can't be highlighted like in Sublime yet. hi! link pythonStatement Keyword " FIXME: Python special regexp sequences aren't highlighted. :\ " QuickScope plugin call s:h('QuickScopePrimary', { 'bg': s:lightgrey, 'fg': s:black, 'format': 'underline' }) call s:h('QuickScopeSecondary', { 'bg': s:black, 'fg': s:lightgrey, 'format': 'underline' }) " Ruby " call s:h('rubyInterpolationDelimiter', {}) " call s:h('rubyInstanceVariable', {}) " call s:h('rubyGlobalVariable', {}) " call s:h('rubyClassVariable', {}) " call s:h('rubyPseudoVariable', {}) hi! link rubyFunction SublimeGreen hi! link rubyStringDelimiter SublimeYellow hi! link rubyRegexp SublimeYellow hi! link rubyRegexpDelimiter SublimeYellow hi! link rubySymbol SublimePurple hi! link rubyEscape SublimePurple hi! link rubyInclude SublimePink hi! link rubyOperator Operator hi! link rubyControl SublimePink hi! link rubyClass SublimePink hi! link rubyDefine SublimePink hi! link rubyException SublimePink hi! link rubyRailsARAssociationMethod SublimeOrange hi! link rubyRailsARMethod SublimeOrange hi! link rubyRailsRenderMethod SublimeOrange hi! link rubyRailsMethod SublimeOrange hi! link rubyConstant SublimeAqua hi! link rubyBlockArgument SublimeOrange hi! link rubyBlockParameter SublimeOrange " Rust hi! link rustAttribute SublimeGrey hi! link rustCommentLineDoc SublimeDocumentation hi! link rustConditional Conditional hi! link rustDerive SublimeGrey hi! link rustDeriveTrait SublimeGrey " Variation: I like making these Special hi! link rustEnumVariant SublimeType hi! link rustFuncCall SublimeFunctionCall hi! link rustFuncName Tag hi! link rustIdentifier Tag " Variation: I actually like making these Special too hi! link rustLifetime Keyword hi! link rustMacro SublimeFunctionCall hi! link rustModPathSep Normal hi! link rustQuestionMark Keyword hi! link rustRepeat Keyword hi! link rustSelf SublimeContextParam " XXX: Deficiencies: " * In Sublime, `fn` and `let` keywords are highlighted, but Vim lumps them " with all other keywords " * Crate names after `extern crate` are included in `rustIdentifier`, which " is technically more inclusive than Sublime's definition group but not so " bad I don't think it's an okay default. " * Sublime does NOT have the `rustEnumVariants` distinction, which is " actually a really nice feature. " * No `fn`/lambda param highlighting is available in Vim like in Sublime " here. :( " SASS hi! link sassAmpersand Operator hi! link sassClass Tag hi! link sassCssAttribute SublimeAqua hi! link sassInclude Keyword " FIXME: No distinction between mixin definition and call hi! link sassMixinName SublimeAqua hi! link sassMixing Keyword hi! link sassProperty SublimeAqua hi! link sassSelectorOp Operator hi! link sassVariable Normal " SQL hi! link Quote String hi! link sqlFunction SublimeFunctionCall hi! link sqlKeyword Keyword hi! link sqlStatement Keyword " Syntastic hi! link SyntasticErrorSign Error call s:h('SyntasticWarningSign', { 'fg': s:lightblack, 'bg': s:orange }) " Tagbar hi! link TagbarFoldIcon SublimePurple hi! link TagbarHelp Comment hi! link TagbarKind Keyword hi! link TagbarNestedKind Keyword hi! link TagbarScope Tag hi! link TagbarSignature Comment hi! link TagbarVisibilityPrivate SublimePink hi! link TagbarVisibilityProtected SublimeYellow hi! link TagbarVisibilityPublic SublimeGreen " VimL hi! link vimCommand Keyword " Variation: Interesting how this could vary... hi! link vimCommentTitle Comment hi! link vimEnvvar SublimeAqua hi! link vimFBVar SublimeWhite hi! link vimFuncName SublimeAqua hi! link vimFuncNameTag SublimeAqua hi! link vimFunction SublimeGreen hi! link vimFuncVar SublimeContextParam hi! link vimHiGroup Normal hi! link vimIsCommand SublimeAqua hi! link vimMapModKey SublimeAqua hi! link vimMapRhs SublimeYellow hi! link vimNotation SublimeAqua hi! link vimOption SublimeAqua hi! link vimParenSep SublimeWhite hi! link vimScriptFuncTag SublimePink hi! link vimSet Keyword hi! link vimSetEqual Operator hi! link vimUserFunc SublimeAqua hi! link vimVar SublimeWhite " XML hi! link xmlArg Tag hi! link xmlAttrib Tag " XXX: This highlight the brackets and end slash too...which we don't want. hi! link xmlEndTag Keyword " Variation: I actually liked it when this was faded. hi! link xmlProcessingDelim Normal hi! link xmlTagName Keyword " YAML hi! link yamlBlockCollectionItemStart Normal hi! link yamlBlockMappingKey Keyword hi! link yamlEscape Special " Variation: I kind of like keeping these Special hi! link yamlFlowIndicator Normal hi! link yamlFlowMappingKey Keyword hi! link yamlKeyValueDelimiter Normal hi! link yamlPlainScalar String " XXX: Other noted deficiencies: " A good place to see these in action is: http://www.yaml.org/start.html " * "yes"/"no" values are actually not recognized as yamlBool groups in Vim. " * Literal/folded block scalars don't have their own group right now in Vim. " * yamlInteger gets applied to leading numbers in literal/folded block " scalars in Vim. " * References aren't handled at all by Vim, it seems. " * Vim incorrectly highlights for comments after a scalar value has started. " Other noted deficiencies when using YAML to manually analyze binary files: " * Hex literals as map keys are highlighted in Sublime, not in Vim. " * Sublime is more permissive about what it highlights for keys, but Sublime " may reject them as invalid; i.e., "???" (minus quotes) " zsh " Variation: I actually like making these aqua. hi! link zshDeref Normal hi! link zshFunction Tag " XXX: This isn't awesome because it includes too much, like semicolons. :( hi! link zshOperator Operator " Variation: This actually looks nicer as a Special. hi! link zshOption Normal hi! link zshQuoted Special " Variation: I'd probably prefer this to be something else, actually. " XXX: This doesn't work particularly well here...but most of the time, we're " in quotes, so let's go with that. hi! link zshSubst String " Variation: I actually like keeping this as Type. hi! link zshTypes Keyword " Other variations: " XXX: Other noted deficiencies: " * Semicolons in `if` blocks are `Keyword`ed in Sublime but not distinct in " Vim " * Commands aren't distinct from builtins and keywords in Vim