diff --git a/runtime/syntax/lua.vim b/runtime/syntax/lua.vim
new file mode 100644
index 0000000..0bcda62
--- /dev/null
+++ b/runtime/syntax/lua.vim
@@ -0,0 +1,256 @@
+" Vim syntax file
+" Language:	Lua 4.0 and Lua 5.0
+" Maintainer:	Marcus Aurelius Farias <marcuscf@vant.com.br>
+" First Author:	Carlos Augusto Teixeira Mendes <cmendes@inf.puc-rio.br>
+" Last Change:	2003 May 04
+" Options:	lua_version = 4 or 5 [default]
+"
+" Still has some syncing problems (long [[strings]])...
+
+" 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
+
+if !exists("lua_version")
+  let lua_version = 5
+endif
+
+syn case match
+
+" Comments
+syn keyword luaTodo		contained TODO FIXME XXX
+syn match   luaComment		"--.*$" contains=luaTodo
+if lua_version > 4
+  syn region  luaComment	matchgroup=luaComment start="--\[\[" end="\]\]" contains=luaTodo,luaInnerComment
+  syn region  luaInnerComment	contained transparent start="\[\[" end="\]\]"
+endif
+" First line may start with #!
+syn match   luaComment		"\%^#!.*"
+
+" catch errors caused by wrong parenthesis and wrong curly brackets or
+" keywords placed outside their respective blocks
+
+syn region  luaParen		transparent start='(' end=')' contains=ALLBUT,luaError,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaCondStart,luaBlock,luaRepeatBlock,luaRepeat,luaStatement
+syn match   luaError		")"
+syn match   luaError		"}"
+syn match   luaError		"\<\(end\|else\|elseif\|then\|until\|in\)\>"
+
+
+" Function declaration
+syn region  luaFunctionBlock    transparent matchgroup=luaFunction start="\<function\>" end="\<end\>" contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaRepeat
+
+" if then else elseif end
+syn keyword luaCond		contained else
+
+" then ... end
+syn region  luaCondEnd		contained transparent matchgroup=luaCond start="\<then\>" end="\<end\>" contains=ALLBUT,luaTodo,luaSpecial,luaRepeat
+
+" elseif ... then
+syn region  luaCondElseif	contained transparent matchgroup=luaCond start="\<elseif\>" end="\<then\>" contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaRepeat
+
+" if ... then
+syn region  luaCondStart	transparent matchgroup=luaCond start="\<if\>" end="\<then\>"me=e-4 contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaRepeat nextgroup=luaCondEnd skipwhite skipempty
+
+" do ... end
+syn region  luaBlock		transparent matchgroup=luaStatement start="\<do\>" end="\<end\>" contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaRepeat
+
+" repeat ... until
+syn region  luaRepeatBlock	transparent matchgroup=luaRepeat start="\<repeat\>" end="\<until\>" contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaRepeat
+
+" while ... do
+syn region  luaRepeatBlock	transparent matchgroup=luaRepeat start="\<while\>" end="\<do\>"me=e-2 contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaRepeat nextgroup=luaBlock skipwhite skipempty
+
+" for ... do and for ... in ... do
+syn region luaRepeatBlock	transparent matchgroup=luaRepeat start="\<for\>" end="\<do\>"me=e-2 contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd nextgroup=luaBlock skipwhite skipempty
+
+" Following 'else' example. This is another item to those
+" contains=ALLBUT,... because only the 'for' luaRepeatBlock contains it.
+syn keyword luaRepeat		contained in
+
+" other keywords
+syn keyword luaStatement	return local break
+syn keyword luaOperator		and or not
+syn keyword luaConstant		nil
+if lua_version > 4
+  syn keyword luaConstant	true false
+endif
+
+" Pre processor doesn't exist since Lua 4.0
+" syn match   luaPreProc	  "^\s*$\(debug\|nodebug\|if\|ifnot\|end\|else\|endinput\)\>"
+
+" Strings
+syn match   luaSpecial		contained "\\[\\abfnrtv\'\"[\]]\|\\\d\{,3}"
+syn region  luaString		start=+'+  end=+'+ skip=+\\\\\|\\'+ contains=luaSpecial
+syn region  luaString		start=+"+  end=+"+ skip=+\\\\\|\\"+ contains=luaSpecial
+" Nested strings
+syn region  luaString2		matchgroup=luaString start=+\[\[+ end=+\]\]+ contains=luaString2
+
+" integer number
+syn match luaNumber		"\<[0-9]\+\>"
+" floating point number, with dot, optional exponent
+syn match luaFloat		"\<[0-9]\+\.[0-9]*\(e[-+]\=[0-9]\+\)\=\>"
+" floating point number, starting with a dot, optional exponent
+syn match luaFloat		"\.[0-9]\+\(e[-+]\=[0-9]\+\)\=\>"
+" floating point number, without dot, with exponent
+syn match luaFloat		"\<[0-9]\+e[-+]\=[0-9]\+\>"
+
+" tables
+syn region  luaTableBlock       transparent matchgroup=luaTable start="{" end="}" contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaCondStart,luaBlock,luaRepeatBlock,luaRepeat,luaStatement
+
+syn keyword luaFunc	assert collectgarbage dofile error gcinfo next
+syn keyword luaFunc	print rawget rawset tonumber tostring type _VERSION
+
+if lua_version == 4
+  syn keyword luaFunc	_ALERT _ERRORMESSAGE
+  syn keyword luaFunc	call copytagmethods dostring
+  syn keyword luaFunc	foreach foreachi getglobal getn
+  syn keyword luaFunc	gettagmethod globals newtag
+  syn keyword luaFunc	setglobal settag settagmethod sort
+  syn keyword luaFunc	tag tinsert tremove
+  syn keyword luaFunc	_INPUT _OUTPUT _STDIN _STDOUT _STDERR
+  syn keyword luaFunc	openfile closefile flush seek
+  syn keyword luaFunc	setlocale execute remove rename tmpname
+  syn keyword luaFunc	getenv date clock exit
+  syn keyword luaFunc	readfrom writeto appendto read write
+  syn keyword luaFunc	PI abs sin cos tan asin
+  syn keyword luaFunc	acos atan atan2 ceil floor
+  syn keyword luaFunc	mod frexp ldexp sqrt min max log
+  syn keyword luaFunc	log10 exp deg rad random
+  syn keyword luaFunc	randomseed strlen strsub strlower strupper
+  syn keyword luaFunc	strchar strrep ascii strbyte
+  syn keyword luaFunc	format strfind gsub
+  syn keyword luaFunc	getinfo getlocal setlocal setcallhook setlinehook
+else
+  syn keyword luaFunc	_G getfenv getmetatable ipairs loadfile
+  syn keyword luaFunc	loadlib loadstring pairs pcall rawequal
+  syn keyword luaFunc	require setfenv setmetatable unpack xpcall
+  syn keyword luaFunc	LUA_PATH _LOADED _REQUIREDNAME
+" Not sure if all these functions need to be highlighted...
+  syn match   luaFunc	/coroutine\.create/
+  syn match   luaFunc	/coroutine\.resume/
+  syn match   luaFunc	/coroutine\.status/
+  syn match   luaFunc	/coroutine\.wrap/
+  syn match   luaFunc	/coroutine\.yield/
+  syn match   luaFunc	/string\.byte/
+  syn match   luaFunc	/string\.char/
+  syn match   luaFunc	/string\.dump/
+  syn match   luaFunc	/string\.find/
+  syn match   luaFunc	/string\.len/
+  syn match   luaFunc	/string\.lower/
+  syn match   luaFunc	/string\.rep/
+  syn match   luaFunc	/string\.sub/
+  syn match   luaFunc	/string\.upper/
+  syn match   luaFunc	/string\.format/
+  syn match   luaFunc	/string\.gfind/
+  syn match   luaFunc	/string\.gsub/
+  syn match   luaFunc	/table\.concat/
+  syn match   luaFunc	/table\.foreach/
+  syn match   luaFunc	/table\.foreachi/
+  syn match   luaFunc	/table\.getn/
+  syn match   luaFunc	/table\.sort/
+  syn match   luaFunc	/table\.insert/
+  syn match   luaFunc	/table\.remove/
+  syn match   luaFunc	/table\.setn/
+  syn match   luaFunc	/math\.abs/
+  syn match   luaFunc	/math\.acos/
+  syn match   luaFunc	/math\.asin/
+  syn match   luaFunc	/math\.atan/
+  syn match   luaFunc	/math\.atan2/
+  syn match   luaFunc	/math\.ceil/
+  syn match   luaFunc	/math\.cos/
+  syn match   luaFunc	/math\.deg/
+  syn match   luaFunc	/math\.exp/
+  syn match   luaFunc	/math\.floor/
+  syn match   luaFunc	/math\.log/
+  syn match   luaFunc	/math\.log10/
+  syn match   luaFunc	/math\.max/
+  syn match   luaFunc	/math\.min/
+  syn match   luaFunc	/math\.mod/
+  syn match   luaFunc	/math\.pow/
+  syn match   luaFunc	/math\.rad/
+  syn match   luaFunc	/math\.sin/
+  syn match   luaFunc	/math\.sqrt/
+  syn match   luaFunc	/math\.tan/
+  syn match   luaFunc	/math\.frexp/
+  syn match   luaFunc	/math\.ldexp/
+  syn match   luaFunc	/math\.random/
+  syn match   luaFunc	/math\.randomseed/
+  syn match   luaFunc	/math\.pi/
+  syn match   luaFunc	/io\.stdin/
+  syn match   luaFunc	/io\.stdout/
+  syn match   luaFunc	/io\.stderr/
+  syn match   luaFunc	/io\.close/
+  syn match   luaFunc	/io\.flush/
+  syn match   luaFunc	/io\.input/
+  syn match   luaFunc	/io\.lines/
+  syn match   luaFunc	/io\.open/
+  syn match   luaFunc	/io\.output/
+  syn match   luaFunc	/io\.popen/
+  syn match   luaFunc	/io\.read/
+  syn match   luaFunc	/io\.tmpfile/
+  syn match   luaFunc	/io\.type/
+  syn match   luaFunc	/io\.write/
+  syn match   luaFunc	/os\.clock/
+  syn match   luaFunc	/os\.date/
+  syn match   luaFunc	/os\.difftime/
+  syn match   luaFunc	/os\.execute/
+  syn match   luaFunc	/os\.exit/
+  syn match   luaFunc	/os\.getenv/
+  syn match   luaFunc	/os\.remove/
+  syn match   luaFunc	/os\.rename/
+  syn match   luaFunc	/os\.setlocale/
+  syn match   luaFunc	/os\.time/
+  syn match   luaFunc	/os\.tmpname/
+  syn match   luaFunc	/debug\.debug/
+  syn match   luaFunc	/debug\.gethook/
+  syn match   luaFunc	/debug\.getinfo/
+  syn match   luaFunc	/debug\.getlocal/
+  syn match   luaFunc	/debug\.getupvalue/
+  syn match   luaFunc	/debug\.setlocal/
+  syn match   luaFunc	/debug\.setupvalue/
+  syn match   luaFunc	/debug\.sethook/
+  syn match   luaFunc	/debug\.traceback/
+endif
+
+"syncing method
+syn sync minlines=100
+
+" Define the default highlighting.
+" For version 5.7 and earlier: only when not done already
+" For version 5.8 and later: only when an item doesn't have highlighting yet
+if version >= 508 || !exists("did_lua_syntax_inits")
+  if version < 508
+    let did_lua_syntax_inits = 1
+    command -nargs=+ HiLink hi link <args>
+  else
+    command -nargs=+ HiLink hi def link <args>
+  endif
+
+  HiLink luaStatement		Statement
+  HiLink luaRepeat		Repeat
+  HiLink luaString		String
+  HiLink luaString2		String
+  HiLink luaNumber		Number
+  HiLink luaFloat		Float
+  HiLink luaOperator		Operator
+  HiLink luaConstant		Constant
+  HiLink luaCond		Conditional
+  HiLink luaFunction		Function
+  HiLink luaComment		Comment
+  HiLink luaTodo		Todo
+  HiLink luaTable		Structure
+  HiLink luaError		Error
+  HiLink luaSpecial		SpecialChar
+  " HiLink luaPreProc		PreProc
+  HiLink luaFunc		Identifier
+
+  delcommand HiLink
+endif
+
+let b:current_syntax = "lua"
+
+" vim: noet ts=8
