VIM рдЗрд╕ рдмрд╛рдд рдХреЗ рд▓рд┐рдП рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХрд┐рддрдирд╛ рд╕рд░рд▓ рдФрд░ рд▓рдЪреАрд▓рд╛ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ рдХрд┐ рд╡рд┐рднрд┐рдиреНрди рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ рдирд┐рдпрдореЛрдВ рдХреЛ рдмрдирд╛рдирд╛ рдХрд┐рддрдирд╛ рдЖрд╕рд╛рди рдФрд░ рд╕рд░рд▓ рд╣реИред
рд╣рд╛рдВ,
рд╣рдмрд░ рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ
рд▓реЗрдЦ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕ рд╡рд┐рд╖рдп рдХреЛ рдмрд╣реБрдд рд╕рддрд╣реА рд░реВрдк рд╕реЗ рдорд╛рдирд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдореИрдВ рдЗрд╕реЗ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЬрд╛рдирдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред рд╕рд░рд▓рддрдо рдЙрджрд╛рд╣рд░рдгреЛрдВ рд╕реЗ, рдПрдЪрдмреАрдП рдорд╛рд░реНрдХрдЕрдк рдЯреИрдЧ рдХреЛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдЪрдЯреАрдПрдордПрд▓ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ рд╕рд╣рд┐рдд, "рд╕рдВрджрд░реНрдн-рд╕рдВрд╡реЗрджрдирд╢реАрд▓" рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдкреВрд░реНрдг-рд╡рд┐рдХрд╕рд┐рдд рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ рдмрдирд╛рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдХреНрдпрд╛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ - рдЖрдк рдЕрдкрдиреА рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реБрдП, рддреБрд░рдВрдд рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдЕрд╡рд▓реЛрдХрди рдХрд░рддреЗ рд╣реБрдП рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЕрддрд┐рд░рд┐рдХреНрдд рдЖрдВрджреЛрд▓рдиреЛрдВ рдХреЗ рдмреИрдХрд▓рд╛рдЗрдЯ рдХреЗ рд╕рд╛рде рдЦреЗрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рд╣рд░ рдХреЛрдИ VIM рдЦреЛрд▓реЗрдВ рдФрд░ рдЕрдкрдиреЗ рд▓реЗрдЦ рдореЗрдВ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВред
рдХреАрд╡рд░реНрдб рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ
рдЗрд╕рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ: рдЖрдк рдкрд╛рда рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕рдореЗрдВ рдЕрдкрдиреЗ рд▓рд┐рдП рдиреЛрдЯреНрд╕ рдЫреЛрдбрд╝рддреЗ рд╣реИрдВ рдЬреИрд╕реЗ "todo - рдЗрд╕ рд╡рд╛рдХреНрдп рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рддрд╛рдХрд┐ рдпрд╣ рдкрдврд╝рдирд╛ рдЖрд╕рд╛рди рд╣реЛред" рдЖрдЗрдП рдкрд╛рда рдХреЗ рд╣рдорд╛рд░реЗ рдкрдврд╝рдиреЗ рдХреЛ рд╕рд░рд▓ рдХрд░реЗрдВ рдФрд░ рдЯреВрдбреВ рд╢рдмреНрдж рдкрд░ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓реЗрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрдорд╛рдВрдб рдореЛрдб рдореЗрдВ, рджрд░реНрдЬ рдХрд░реЗрдВ
:syn keyword Keyword todo
рджреЗрдЦрд╛! рдЕрдм рд╣рдо рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд▓рдЧ рд░рд╣реЗ рд╣реИрдВ:

рдкрд╣рд▓реЗ рдХреАрд╡рд░реНрдб рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рд╕рд┐рдВрдХ (рд╕рд┐рдВрдЯреИрдХреНрд╕) рдХрдорд╛рдВрдб рдХрд╛ рдЕрд░реНрде рдирд┐рдореНрди рд╣реИ: рдХреАрд╡рд░реНрдб рд╢реИрд▓реА рдХреЗ рд╕рд╛рде рдЯреВрдбреВ рд╢рдмреНрдж рдкрд░ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓реЗрдВред рдЗрд╕ рд╢реИрд▓реА рдХрд╛ рд░рдВрдЧ рдЖрдкрдХреА рд░рдВрдЧ рдпреЛрдЬрдирд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдЖрдк рдПрдХ рд╕рд╛рде рдХрдИ рдХреАрд╡рд░реНрдб рд╕реВрдЪреАрдмрджреНрдз рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
:syn keyword Keyword todo rewrite done
рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рд╡реНрдпреЛрдо рдореЗрдВ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
:syn match AnyHighlightStyle /herer-is-regexp/
рдпрд╛рдж рд░рдЦрдиреЗ рд╡рд╛рд▓реА рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ Wim рдХреА рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ Perl рдЬреИрд╕реА рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рд╕реЗ рднрд┐рдиреНрди рд╣реЛрддрд╛ рд╣реИ (рдЬрд┐рд╕рдХрд╛ рдХрдИ рд▓реЛрдЧ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ):
Perl- рдЬреИрд╕реЗ | рд╡рд┐рдо |
oneOrMany + | oneOrMany \ + |
(рд╕рдореВрд╣) | \ (рд╕рдореВрд╣) |
(рд╡реИрдХрд▓реНрдкрд┐рдХ) | \ (рд╡реИрдХрд▓реНрдкрд┐рдХ \) \ = |
(notSoManyTimes) {реи, рек} | \ (notSoManyTimes \) \ {2, 4} |
рдХреБрдЫ (; = рджреЗрдЦреЛ) | рдХреБрдЫ \ _ (рджреЗрдЦрд┐рдП \ _) \ _ = |
рдХреБрдЫ (?! рдирд╣реАрдВ рдЪрд╛рд╣рд┐рдП) | рдХреБрдЫ \ _ (shouldNotBeThere \) \ @! |
(<? look =ackward) рдХреБрдЫ | \ _ (рджрд┐рдЦрд╛рд╡рдЯ \ _) \ _ <= ssomething |
рдкрд╣рд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдкрд░ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓рд┐рдП:
:syn match Float /\d\+\(\.\d\)\=/

рдЕрдм рдЖрдЗрдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рджреЗрдЦреЗрдВ - рдЪрд▓реЛ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреЛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд░реЗрдВред рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: рдПрдХ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдПрдХ рдУрдкрдирд┐рдВрдЧ рдмреНрд░реИрдХреЗрдЯ (рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдмреНрд░реИрдХреЗрдЯ рдХреЛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд▓реБрдХ-рдлреЙрд░рд╡рд░реНрдб рдирд┐рд░реНрдорд╛рдг \ ze рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЬрд┐рд╕рдореЗрдВ рджрд╛рдИрдВ рдУрд░ рдПрдХ рдкрд░рдорд╛рдгреБ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдорд┐рд▓рд╛рди рдХреЗ рдкрд░рд┐рдгрд╛рдо рдореЗрдВ рдЗрд╕реЗ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдХреЛрд╖реНрдардХ) рдлрд╝рдВрдХреНрд╢рди рд░рдВрдЧ рдХреЗ рд╕рд╛рде рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛):
:syn match Function /\w\+\((\)\@=/

рдпрд╛ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЙрд▓ рдХреЛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд░реЗрдВ: рдирдпрд╛ SomeClassNameред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ \ ze рдХреЗ рд╕рдорд╛рди рдПрдХ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛, рдХреЗрд╡рд▓ "рдкрд┐рдЫрдбрд╝реЗ": \ zs рдХреЛ рд╕реНрдХреИрди рдХрд░реЗрдЧрд╛
:syn match Function /\(new\s\+\)\@<=\w\+/
рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рд╣рд╛рдИрд▓рд╛рдЗрдЯ рдХрд░рдирд╛
рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ рдХреНрд╖реЗрддреНрд░ рдХреБрдЫ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрджреНрдШрд╛рдЯрди рдФрд░ рд╕рдорд╛рдкрди рдирд┐рд░реНрдорд╛рдгреЛрдВ рдХреЗ рд╕рд╛рде рдмреНрд▓реЙрдХреЛрдВ рдХреЗ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореМрдЬреВрдж рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: HTML рдореЗрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ, рд▓рд╛рдЗрдиреЗрдВ, рдЯреИрдЧ рдЖрджрд┐ред рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
:syn region SomeHighlightStyle start=/start-regexp/ end=/end-regexp/ skip=/regexp-to-skip-and-not-treat-as-an-end-regexp/
рд░рд╛рдЗрдорд░ рдкрд░ рдЙрдкрдпреЛрдЧ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╕реА-рд╕реНрдЯрд╛рдЗрд▓ рдорд▓реНрдЯреА-рд▓рд╛рдЗрди рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд░реЗрдВ:
:syn region Comment start=/\/\*/ end=/\*\//
рдЕрдм рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдереЛрдбрд╝рд╛ рдФрд░ рдЬрдЯрд┐рд▓ рджреЗрдЦрддреЗ рд╣реИрдВ: рдЖрдЗрдП рд╕реАрдорд┐рдд рд╢рдмреНрджреЛрдВ рдореЗрдВ рдбрдмрд▓ рдХреЛрдЯреНрд╕ рджреНрд╡рд╛рд░рд╛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд░реЗрдВ:
:syn region String start=/"/ end=/"/
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕ рддрд░рд╣ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рдПрдХ рджреЛрд╖ рд╣реИ - рд╣рдо рдЪрд░рд┐рддреНрд░ рдХреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдЗрдП рдЗрд╕ рджреЛрд╖ рдХреЛ рдареАрдХ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдмрдЪ рдЧрдП рдЙрджреНрдзрд░рдгреЛрдВ рдХреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдЕрдВрдд рдирд╣реАрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рд╕реНрдХрд┐рдк рдкреИрд░рд╛рдореАрдЯрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рдЗрд╕реЗ рджреВрд░ рдХрд┐рдП рдмрд┐рдирд╛ "рдирд┐рдЧрд▓" рд▓реЗрддрд╛ рд╣реИред рдХреНрд╖реЗрддреНрд░ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЬрд╛рдБрдЪ:
:syn region String start=/"/ skip=/\\"/ end=/"/

рдЕрдм рдпрд╣ рд╡реИрд╕рд╛ рд╣реА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕рд╛ рдЙрд╕реЗ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреА "рддрд╣" (рддрд╣)
рд╡рд┐рдо рдЖрдкрдХреЛ рдмреНрд▓реЙрдХ рдХреЛ "рдврд╣рд╛рдиреЗ" (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд▓рдВрдмреА рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рдпрд╛ рдХреЛрдб рдХреЗ рдмреНрд▓реЙрдХ) рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрдорд╛рдВрдб: syn рдореЗрдВ рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рдЧреБрдирд╛ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИред рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдиреЗ рджреЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдмрд╕ рд╕рд┐рдВрдХ рдХрдорд╛рдВрдб рдХреЗ рдЕрдВрдд рдореЗрдВ рдЧреБрдирд╛ рдЬреЛрдбрд╝реЗрдВ:
:syn region Comment start=/\/\*/ end=/\*\// fold
рдЖрдкрдХреЛ рдмрд╕ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ "рддрд╣" рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
set foldmethod=syntax
рдХреЛрдб рдореЗрдВ {} рдХреЛрд╖реНрдардХ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреА рддрд╣ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдЕрдВрджрд░ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ рдХреЛрдб рдЫреЛрдбрд╝ рджреЗрдВ (рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ "рдЦрд╛рдПрдЧрд╛": рд╕рдорд╛рди рдХреНрд╖реЗрддреНрд░), рдЖрдк рдЗрд╕ рдкрд░ рдкрд╛рд░рджрд░реНрд╢реА рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: syn рдХреНрд╖реЗрддреНрд░:
:syn region CodeBlock start=/{/ end=/}/ transparent fold
рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЖрджреЗрд╢ {} рдХреЗ рдЕрдВрджрд░ рдмреНрд▓реЙрдХ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЛ рдирд╣реАрдВ рдмрджрд▓реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдкрддрди рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛ рджреЗрдЧрд╛ред
рд╢реИрд▓рд┐рдпрд╛рдБ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд░реЗрдВ
рдХрдорд╛рдВрдб рдХрд╛ рджреВрд╕рд░рд╛ рддрд░реНрдХ: рд╕рд┐рдВрдХ - рдЬрд┐рд╕ рд╢реИрд▓реА рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИ, рд╡рд╣ рдХреЛрдИ рднреА рд░реЗрдЦрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдФрд░ рдПрдХ рдЕрдЪреНрдЫреЗ рддрд░реАрдХреЗ рд╕реЗ, "рд╕рдВрд░рдЪрдирд╛" рдФрд░ "рдкреНрд░рд╕реНрддреБрддрд┐" рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП: syn рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рднрд╛рд╖рд╛ рдЙрдкрд╕рд░реНрдЧ рдХреЗ рд╕рд╛рде "рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рдирд╛рдо" рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ:
:syn keyword pascalKeyword begin end var procedure function :syn keyword pascalBuiltinFunction WriteLn ReadLn Assign
рдФрд░ рдлрд┐рд░ рд╡реЗ рдЗрди рд╢реИрд▓рд┐рдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рд╣рд╛рдп (hilight) рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ VIM рд░рдВрдЧ рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╢реИрд▓рд┐рдпреЛрдВ рд╕реЗ рдХрд░рддреЗ рд╣реИрдВ:
:hi link pascalKeyword Keyword :hi link pascalBuiltinFunction Keyword
рдиреЗрд╕реНрдЯреЗрдб рдмреНрд▓реЙрдХ
рдЕрдм рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ: рд╣рдо рдЕрдкрдиреЗ рдЦреЛрдЬрд╢рдмреНрджреЛрдВ рдХреЛ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдЙрдЬрд╛рдЧрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ: TODO, NOTE, рдЬрд┐рдиреНрд╣реЗрдВ рдЕрдХреНрд╕рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рджреНрд╡рд╛рд░рд╛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, VIM рдореЗрдВ рджреЛ рдкреИрд░рд╛рдореАрдЯрд░ рд╕рдорд╛рд╣рд┐рдд рд╣реИрдВ рдФрд░ рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ: synред рдирд┐рд╣рд┐рдд рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ рдирд┐рдпрдо "рд╡реИрд╢реНрд╡рд┐рдХ" рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдФрд░ = рд╕реНрдЯрд╛рдЗрд▓ 1 рд╢рд╛рдорд┐рд▓ рд╣реИ, рд╕реНрдЯрд╛рдЗрд▓ 2 рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдирд┐рдпрдо рдХреЗ рдЕрдВрджрд░ рдпрд╣ рдЙрди рдирд┐рдпрдореЛрдВ рдХреА рддрд▓рд╛рд╢ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ рдЬреЛ рд╕реНрдЯрд╛рдЗрд▓ 1 рдФрд░ рд╕реНрдЯрд╛рдЗрд▓ 2 рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВред рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдпрд╣ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:
:syn keyword CommentKeyword TODO NOTE contained :syn region Comment start=/\/\*/ end=/\*\// contains CommentKeyword :hi link CommentKeyword Keyword
рдЗрд╕ рдкреНрд░рдХрд╛рд░, TODO рдФрд░ NOTE рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд╣рд░ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗ, рдФрд░ рдХреЗрд╡рд▓ рдЙрдиреНрд╣реЗрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЖрдк рдХреЗрд╡рд▓ рдХреАрд╡рд░реНрдб рд╣реА рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдХрд┐рд╕реА рднреА рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ рдирд┐рдпрдо рдХреЛ рднреА рд╢рд╛рдорд┐рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдкрд▓рд╛рдпрди рдпреЛрдЧреНрдп рдкрд╛рддреНрд░реЛрдВ рдХрд╛ рдЪрдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: \ n, \ t, \ r, \ b:
:syn region String start=/"/ skip=/\\"/ end=/"/ contains=EscapeSymbol :syn match EscapeSymbol /\\[ntrb"]/ contained :highlight link EscapeSymbol Keyword

рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЙрджрд╛рд╣рд░рдг:ред Html рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╣рд╛рдЗрдмреНрд░реЗрдЯ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ
рдпрджрд┐ рдЖрдк .bm рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ VIM рдореЗрдВ habraposts рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╣рдм-рдХреНрд░реЙрдк, hh рдЬреИрд╕реЗ рд╣рдм-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЯреИрдЧ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред рдЗрд╕ рдЧрд▓рддрдлрд╣рдореА рдХреЛ рдареАрдХ рдХрд░реЛред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо html: .vim / syntax / html.vim рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЪрдврд╝рддреЗ рд╣реИрдВ рдФрд░ рдкрддрд╛ рд▓рдЧрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдЯреИрдЧ рдирд╛рдо рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ рд╕реНрдЯрд╛рдЗрд▓ рдХреЛ htmlTagName рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░рдХреЗ:
:syn keyword htmlTagName habracut source hh video slideshow

рд╡рд┐рд╕реНрддрд╛рд░ рджреНрд╡рд╛рд░рд╛ рдмреИрдХрд▓рд╛рдЗрдЯ
рд╣рд░ рдмрд╛рд░, рд╕рднреА рдбрд┐рдЬрд╝рд╛рдЗрдиреЛрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░реЗрдВ, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдХрд┐рд╕реА рдХреЛ рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд╕рднреА рдЖрджреЗрд╢реЛрдВ рдХреЛ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП) my.vim рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ (рдЖрд╡рд╢реНрдпрдХ) .vim / рд╕рд┐рдВрдЯреИрдХреНрд╕ / рдЕрдм рдЖрдкрдХреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЬреИрд╕реЗ рдореЗрд░реА рдпрд╣ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рд╣реЛрдЧреАред рдФрд░ рдЗрд╕рд▓рд┐рдП рдХрд┐ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкреНрд░рдХрд╛рд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЪрд┐рдкрдХрд╛ рд╣реБрдЖ рд╣реИ, рдЖрдкрдХреЛ рд▓рд╛рдЗрди рдХреЛ .vimrc рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
au BufRead,BufNewFile *.my set filetype=my
BufRead рдФрд░ BufNewFile рдХрд╛ рдЕрд░реНрде рд╣реИ рдореМрдЬреВрджрд╛ рдЦреЛрд▓реЗ рдЧрдП рдФрд░ рдмрдирд╛рдП рдЧрдП рдирдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ред
рд╡реИрд╕реЗ, рдЕрдЧрд░ рдЕрдЪрд╛рдирдХ рдЖрдкрдХреЛ рдпрд╣ рдХрдорд╛рдВрдб рдирд╣реАрдВ рдкрддрд╛ рдерд╛, рддреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЧреИрд░-рдорд╛рдирдХ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдбрдВрдк рдЗрди .dump рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд▓рд╛рдЗрдиред
au BufRead,BufNewFile *.dump set filetype=sql
рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЬрдм рдЖрдк рдЗрд╕реЗ рдЦреЛрд▓рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдЖрдкрдХреЛ рдПрдХ sql рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд░рдВрдЧ рджреЗрдЧрд╛ред
рдкреВрд░рд╛ рдЙрджрд╛рд╣рд░рдг
рдЕрдм рдПрдХ рд╕рдВрдкреВрд░реНрдг рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВ: рдЪрд▓реЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рднрд╛рд╖рд╛ рдХреЗ рд╕рдмрд╕реЗрдЯ рдХреЛ рд░рдВрдЧреАрди рдХрд░рддреЗ рд╣реИрдВ:
" javascript , if exists("b:current_syntax") finish endif " javascript , syn region jsString start=/"/ skip=/\\"/ end=/"/ contains=jsEscapeSymbol,jsDoubleQuoteEscape syn region jsString start=/'/ skip=/\\'/ end=/'/ contains=jsEscapeSymbol,jsSingleQuoteEscape syn match jsEscapeSymbol /\\[ntrb]/ contained syn match jsSingleQuoteEscape /\\'/ contained syn match jsDoubleQuoteEscape /\\"/ contained syn match jsFunction /\w\+\((\)\@=/ syn match jsFunction /\(new\s\+\)\@<=\w\+/ " /* * syn region jsComment start=/\/\*/ end=/\*\// " // syn region jsComment start=/\/\// end=/$/ syn keyword jsKeyword if else while new for throw catch function hi link jsKeyword Keyword hi link jsString String hi link jsEscapeSymbol jsEscape hi link jsDoubleQuoteEscape jsEscape hi link jsSingleQuoteEscape jsEscape hi link jsEscape Keyword hi link jsComment Comment hi link jsFunction Function ", javascript let b:current_syntax="javascript"
рдЦреИрд░, рдЖрдЦрд┐рд░рдХрд╛рд░
рдпрджрд┐ рдЬрд┐рд╕ рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рдЖрдк рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдирд╣реАрдВ рд╣реИ - рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
syn case ignore
рдмреИрдХрд▓рд╛рдЗрдЯ рд╡рд┐рд╡рд░рдг рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВред
рдмреИрдХрд▓рд╛рдЗрдЯ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╕рдордп, рдореИрдВ рд▓рдЧрд╛рддрд╛рд░ рдкрд░рд┐рдгрд╛рдо рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрд┐рд╕реА рдЕрдиреНрдп рдмрдлрд╝рд░ рдореЗрдВ рд░рдВрдЧ рдкрд╛рда рдЦреЛрд▓реЗрдВ рдФрд░ рдЬрдм рдЖрдк рдкрд░рд┐рдгрд╛рдо рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдХреЗрд╡рд▓ рджрд░реНрдЬ рдХрд░реЗрдВ: e рдпрд╛: syn рдкрд░ рд╕рд┐рдВрдХ рдХрд░реЗрдВ |
UPD: рд▓реЗрдЦ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП
рдЧреЛрдбрд░ рдХрд╛ рдзрдиреНрдпрд╡рд╛рдж :)