 			{name: "entity.name.function.viml",  match: "([sSgGbBwWtTlL]?:?\\w+)(?=\\()"}
 		]
 	
+	augGroup:
+		patterns: [
+			name: "meta.define-$1.viml"
+			begin: "\\b(aug|augroup)\\b\\s*(\\w+)"
+			end:   "\\b(\\1)\\s+(END)\\b"
+			patterns: [include: "$self"]
+			beginCaptures:
+				1: name: "storage.function.viml"
+				2: name: "entity.name.function.viml"
+			endCaptures:
+				1: name: "storage.function.viml"
+				2: name: "keyword.control.end"
+		]
+	
 	parameter:
 		name: "meta.parameter.viml"
 		match: "(-)(\\w+)(=)"

		]
	
	strings:
		patterns: [
			{name: "string.quoted.double.viml", match: '"(\\\\\\\\|\\\\"|[^\\n"])*"'}
			{name: "string.quoted.single.viml", match: "'(''|[^\\n'])*'"}
			{name: "string.regexp.viml",        match: "/(\\\\\\\\|\\\\/|[^\\n/])*/"}
		]
	
	# This only exists to stop stuff like ~/.vim/ being highlighted like a regex
	pathname:

			3: name: "punctuation.assignment.parameter.viml"

	expr:
		patterns: [
			name: "keyword.operator.logical.viml"
			match: '(\\|\\||&&|==(\\?|#)?|(!|>|<)=(#|\\?)?|(=|!)~(?!\\/)(#|\\?)?|(>|<)(#|\\?)is|isnot|\\*|\\\\|%)'
			
			{match: "(?<=\\S)!", name: "storage.modifier.force.viml"}
			{match: "!(?=\\S)",  name: "keyword.operator.logical.not.viml"}
			{match: "\\(",       name: "punctuation.expression.bracket.round.begin.viml"}
			{match: "\\)",       name: "punctuation.expression.bracket.round.end.viml"}
			{match: "\\|",       name: "punctuation.separator.statement.viml"}
			{match: ":",         name: "punctuation.separator.key-value.viml"}
			{match: "\\.?=",     name: "keyword.operator.assignment.viml"}
			{match: "\\.",       name: "punctuation.delimiter.property.dot.viml"}
		]
	
	keyword:
		patterns: [{
			name: "keyword.control.viml"
			match: "\\b(if|while|for|unlet|return|end(if|for|while)?|else(if)?|do|in|:)\\b"
		}, {
			name: "storage.type.let.viml"
			match: "\\blet\\b"
