diff --git a/runtime/syntax/python.vim b/runtime/syntax/python.vim
new file mode 100644
index 0000000..a73dfa7
--- /dev/null
+++ b/runtime/syntax/python.vim
@@ -0,0 +1,171 @@
+" Vim syntax file
+" Language:	Python
+" Maintainer:	Neil Schemenauer <nas@python.ca>
+" Updated:	2002-10-18
+"
+" 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
+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
+syn keyword pythonPreCondit	import from
+syn match   pythonComment	"#.*$" contains=pythonTodo
+syn keyword pythonTodo		TODO FIXME XXX contained
+
+" strings
+syn region pythonString		matchgroup=Normal start=+[uU]\='+ end=+'+ skip=+\\\\\|\\'+ contains=pythonEscape
+syn region pythonString		matchgroup=Normal start=+[uU]\="+ end=+"+ skip=+\\\\\|\\"+ contains=pythonEscape
+syn region pythonString		matchgroup=Normal start=+[uU]\="""+ end=+"""+ contains=pythonEscape
+syn region pythonString		matchgroup=Normal start=+[uU]\='''+ end=+'''+ contains=pythonEscape
+syn region pythonRawString	matchgroup=Normal start=+[uU]\=[rR]'+ end=+'+ skip=+\\\\\|\\'+
+syn region pythonRawString	matchgroup=Normal start=+[uU]\=[rR]"+ end=+"+ skip=+\\\\\|\\"+
+syn region pythonRawString	matchgroup=Normal start=+[uU]\=[rR]"""+ end=+"""+
+syn region pythonRawString	matchgroup=Normal start=+[uU]\=[rR]'''+ end=+'''+
+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	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	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 <args>
+  else
+    command -nargs=+ HiLink hi def link <args>
+  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
+  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
