1" Vim syntax file 2" Language: git config file 3" Maintainer: Tim Pope <vimNOSPAM@tpope.org> 4" Filenames: gitconfig, .gitconfig, *.git/config 5" Last Change: 2010 May 21 6 7if exists("b:current_syntax") 8 finish 9endif 10 11setlocal iskeyword+=- 12setlocal iskeyword-=_ 13syn case ignore 14syn sync minlines=10 15 16syn match gitconfigComment "[#;].*" 17syn match gitconfigSection "\%(^\s*\)\@<=\[[a-z0-9.-]\+\]" 18syn match gitconfigSection '\%(^\s*\)\@<=\[[a-z0-9.-]\+ \+\"\%([^\\"]\|\\.\)*"\]' 19syn match gitconfigVariable "\%(^\s*\)\@<=\a\k*\%(\s*\%([=#;]\|$\)\)\@=" nextgroup=gitconfigAssignment skipwhite 20syn region gitconfigAssignment matchgroup=gitconfigNone start=+=\s*+ skip=+\\+ end=+\s*$+ contained contains=gitconfigBoolean,gitconfigNumber,gitConfigString,gitConfigEscape,gitConfigError,gitconfigComment keepend 21syn keyword gitconfigBoolean true false yes no contained 22syn match gitconfigNumber "\d\+" contained 23syn region gitconfigString matchgroup=gitconfigDelim start=+"+ skip=+\\+ end=+"+ matchgroup=gitconfigError end=+[^\\"]\%#\@!$+ contained contains=gitconfigEscape,gitconfigEscapeError 24syn match gitconfigError +\\.+ contained 25syn match gitconfigEscape +\\[\\"ntb]+ contained 26syn match gitconfigEscape +\\$+ contained 27 28hi def link gitconfigComment Comment 29hi def link gitconfigSection Keyword 30hi def link gitconfigVariable Identifier 31hi def link gitconfigBoolean Boolean 32hi def link gitconfigNumber Number 33hi def link gitconfigString String 34hi def link gitconfigDelim Delimiter 35hi def link gitconfigEscape Delimiter 36hi def link gitconfigError Error 37 38let b:current_syntax = "gitconfig" 39