" Vim syntax file " Language: Python " Maintainer: Neil Schemenauer " Updated: 2006-10-15 " Added Python 2.4 features 2006 May 4 (Dmitry Vasiliev) " " Options to control Python syntax highlighting: " " For highlighted numbers: " " let python_highlight_numbers = 1 " " For highlighted builtin functions: " " let python_highlight_builtins = 1 " " For highlighted standard exceptions: " " let python_highlight_exceptions = 1 " " Highlight erroneous whitespace: " " let python_highlight_space_errors = 1 " " If you want all possible Python highlighting (the same as setting the " preceding options): " " let python_highlight_all = 1 " " For version 5.x: Clear all syntax items " For version 6.x: Quit when a syntax file was already loaded if version < 600 syntax clear elseif exists("b:current_syntax") finish endif syn keyword pythonStatement break continue del syn keyword pythonStatement except exec finally syn keyword pythonStatement pass print raise syn keyword pythonStatement return try with syn keyword pythonStatement global assert syn keyword pythonStatement lambda yield syn keyword pythonStatement def class nextgroup=pythonFunction skipwhite syn match pythonFunction "[a-zA-Z_][a-zA-Z0-9_]*" contained syn keyword pythonRepeat for while syn keyword pythonConditional if elif else syn keyword pythonOperator and in is not or " AS will be a keyword in Python 3 syn keyword pythonPreCondit import from as syn match pythonComment "#.*$" contains=pythonTodo,@Spell syn keyword pythonTodo TODO FIXME XXX contained " Decorators (new in Python 2.4) syn match pythonDecorator "@" display nextgroup=pythonFunction skipwhite " strings syn region pythonString matchgroup=Normal start=+[uU]\='+ end=+'+ skip=+\\\\\|\\'+ contains=pythonEscape,@Spell syn region pythonString matchgroup=Normal start=+[uU]\="+ end=+"+ skip=+\\\\\|\\"+ contains=pythonEscape,@Spell syn region pythonString matchgroup=Normal start=+[uU]\="""+ end=+"""+ contains=pythonEscape,@Spell syn region pythonString matchgroup=Normal start=+[uU]\='''+ end=+'''+ contains=pythonEscape,@Spell syn region pythonRawString matchgroup=Normal start=+[uU]\=[rR]'+ end=+'+ skip=+\\\\\|\\'+ contains=@Spell syn region pythonRawString matchgroup=Normal start=+[uU]\=[rR]"+ end=+"+ skip=+\\\\\|\\"+ contains=@Spell syn region pythonRawString matchgroup=Normal start=+[uU]\=[rR]"""+ end=+"""+ contains=@Spell syn region pythonRawString matchgroup=Normal start=+[uU]\=[rR]'''+ end=+'''+ contains=@Spell syn match pythonEscape +\\[abfnrtv'"\\]+ contained syn match pythonEscape "\\\o\{1,3}" contained syn match pythonEscape "\\x\x\{2}" contained syn match pythonEscape "\(\\u\x\{4}\|\\U\x\{8}\)" contained syn match pythonEscape "\\$" if exists("python_highlight_all") let python_highlight_numbers = 1 let python_highlight_builtins = 1 let python_highlight_exceptions = 1 let python_highlight_space_errors = 1 endif if exists("python_highlight_numbers") " numbers (including longs and complex) syn match pythonNumber "\<0x\x\+[Ll]\=\>" syn match pythonNumber "\<\d\+[LljJ]\=\>" syn match pythonNumber "\.\d\+\([eE][+-]\=\d\+\)\=[jJ]\=\>" syn match pythonNumber "\<\d\+\.\([eE][+-]\=\d\+\)\=[jJ]\=\>" syn match pythonNumber "\<\d\+\.\d\+\([eE][+-]\=\d\+\)\=[jJ]\=\>" endif if exists("python_highlight_builtins") " builtin functions, types and objects, not really part of the syntax syn keyword pythonBuiltin True False bool enumerate set frozenset help syn keyword pythonBuiltin reversed sorted sum syn keyword pythonBuiltin Ellipsis None NotImplemented __import__ abs syn keyword pythonBuiltin apply buffer callable chr classmethod cmp syn keyword pythonBuiltin coerce compile complex delattr dict dir divmod syn keyword pythonBuiltin eval execfile file filter float getattr globals syn keyword pythonBuiltin hasattr hash hex id input int intern isinstance syn keyword pythonBuiltin issubclass iter len list locals long map max syn keyword pythonBuiltin min object oct open ord pow property range syn keyword pythonBuiltin raw_input reduce reload repr round setattr syn keyword pythonBuiltin slice staticmethod str super tuple type unichr syn keyword pythonBuiltin unicode vars xrange zip endif if exists("python_highlight_exceptions") " builtin exceptions and warnings syn keyword pythonException ArithmeticError AssertionError AttributeError syn keyword pythonException DeprecationWarning EOFError EnvironmentError syn keyword pythonException Exception FloatingPointError IOError syn keyword pythonException ImportError IndentationError IndexError syn keyword pythonException KeyError KeyboardInterrupt LookupError syn keyword pythonException MemoryError NameError NotImplementedError syn keyword pythonException OSError OverflowError OverflowWarning syn keyword pythonException ReferenceError RuntimeError RuntimeWarning syn keyword pythonException StandardError StopIteration SyntaxError syn keyword pythonException SyntaxWarning SystemError SystemExit TabError syn keyword pythonException TypeError UnboundLocalError UnicodeError syn keyword pythonException UnicodeEncodeError UnicodeDecodeError syn keyword pythonException UnicodeTranslateError syn keyword pythonException UserWarning ValueError Warning WindowsError syn keyword pythonException ZeroDivisionError endif if exists("python_highlight_space_errors") " trailing whitespace syn match pythonSpaceError display excludenl "\S\s\+$"ms=s+1 " mixed tabs and spaces syn match pythonSpaceError display " \+\t" syn match pythonSpaceError display "\t\+ " endif " This is fast but code inside triple quoted strings screws it up. It " is impossible to fix because the only way to know if you are inside a " triple quoted string is to start from the beginning of the file. If " you have a fast machine you can try uncommenting the "sync minlines" " and commenting out the rest. syn sync match pythonSync grouphere NONE "):$" syn sync maxlines=200 "syn sync minlines=2000 if version >= 508 || !exists("did_python_syn_inits") if version <= 508 let did_python_syn_inits = 1 command -nargs=+ HiLink hi link else command -nargs=+ HiLink hi def link endif " The default methods for highlighting. Can be overridden later HiLink pythonStatement Statement HiLink pythonFunction Function HiLink pythonConditional Conditional HiLink pythonRepeat Repeat HiLink pythonString String HiLink pythonRawString String HiLink pythonEscape Special HiLink pythonOperator Operator HiLink pythonPreCondit PreCondit HiLink pythonComment Comment HiLink pythonTodo Todo HiLink pythonDecorator Define if exists("python_highlight_numbers") HiLink pythonNumber Number endif if exists("python_highlight_builtins") HiLink pythonBuiltin Function endif if exists("python_highlight_exceptions") HiLink pythonException Exception endif if exists("python_highlight_space_errors") HiLink pythonSpaceError Error endif delcommand HiLink endif let b:current_syntax = "python" " vim: ts=8