" Vim syntax file
" Language:HTML" Maintainer:Claudio Fleiner " URL:http://www.fleiner.com/vim/syntax/html.vim" Last Change: 2006 Jun 19 " Please check :help html.vim for some comments and a description of the options " For version 5.x: Clear all syntax items" For version 6.x: Quit when a syntax file was already loadedif !exists("main_syntax") if version < 600 syntax clear elseif exists("b:current_syntax") finish endif let main_syntax = 'html'endif " don't use standard HiLink, it will not work with included syntax filesif version < 508 command! -nargs=+ HtmlHiLink hi link else command! -nargs=+ HtmlHiLink hi def link endif syntax spell toplevel syn case ignore " mark illegal characterssyn match htmlError "[<>&]" " tagssyn region htmlString contained start=+"+ end=+"+ contains=htmlSpecialChar,javaScriptExpression,@htmlPreprocsyn region htmlString contained start=+'+ end=+'+ contains=htmlSpecialChar,javaScriptExpression,@htmlPreprocsyn match htmlValue contained "=[\t ]*[^'" \t>][^ \t>]*"hs=s+1 contains=javaScriptExpression,@htmlPreprocsyn region htmlEndTag start=++ end=+>+ contains=htmlTagN,htmlTagErrorsyn region htmlTag start=++ contains=htmlTagN,htmlString,htmlArg,htmlValue,htmlTagError,htmlEvent,htmlCssDefinition,@htmlPreproc,@htmlArgClustersyn match htmlTagN contained +]" " new html 4.0 tagssyn keyword htmlTagName contained abbr acronym bdo button col labelsyn keyword htmlTagName contained colgroup del fieldset iframe ins legendsyn keyword htmlTagName contained object optgroup q s tbody tfoot thead " legal arg namessyn keyword htmlArg contained actionsyn keyword htmlArg contained align alink alt archive background bgcolorsyn keyword htmlArg contained border bordercolor cellpaddingsyn keyword htmlArg contained cellspacing checked class clear code codebase colorsyn keyword htmlArg contained cols colspan content coords enctype facesyn keyword htmlArg contained gutter height hspace idsyn keyword htmlArg contained link lowsrc marginheightsyn keyword htmlArg contained marginwidth maxlength method name promptsyn keyword htmlArg contained rel rev rows rowspan scrolling selected shapesyn keyword htmlArg contained size src start target text type urlsyn keyword htmlArg contained usemap ismap valign value vlink vspace width wrapsyn match htmlArg contained "\" " Microsoft extensionssyn keyword htmlTagName contained marquee " html 4.0 arg namessyn match htmlArg contained "\"syn keyword htmlArg contained abbr accept accesskey axis char charoff charsetsyn keyword htmlArg contained cite classid codetype compact data datetimesyn keyword htmlArg contained declare defer dir disabled for framesyn keyword htmlArg contained headers hreflang lang language longdescsyn keyword htmlArg contained multiple nohref nowrap object profile readonlysyn keyword htmlArg contained rules scheme scope span standby stylesyn keyword htmlArg contained summary tabindex valuetype version " special characterssyn match htmlSpecialChar "\=[0-9A-Za-z]\{1,8};" " Comments (the real ones or the old netscape ones)if exists("html_wrong_comments") syn region htmlComment start=++ contains=htmlPreStmt,htmlPreError,htmlPreAttrsyn match htmlPreStmt contained "\)" syn region htmlCssDefinition matchgroup=htmlArg start='' contains=css.*Attr,css.*Prop,cssComment,cssLength,cssColor,cssURL,cssImportant,cssError,cssString,@htmlPreproc HtmlHiLink htmlStyleArg htmlStringendif if main_syntax == "html" " synchronizing (does not always work if a comment includes legal " html tags, but doing it right would mean to always start " at the first line, which is too slow) syn sync match htmlHighlight groupthere NONE "= 508 || !exists("did_html_syn_inits") if version < 508 let did_html_syn_inits = 1 endif HtmlHiLink htmlTag Function HtmlHiLink htmlEndTag Identifier HtmlHiLink htmlArg Type HtmlHiLink htmlTagName htmlStatement HtmlHiLink htmlSpecialTagName Exception HtmlHiLink htmlValue String HtmlHiLink htmlSpecialChar Special if !exists("html_no_rendering") HtmlHiLink htmlH1 Title HtmlHiLink htmlH2 htmlH1 HtmlHiLink htmlH3 htmlH2 HtmlHiLink htmlH4 htmlH3 HtmlHiLink htmlH5 htmlH4 HtmlHiLink htmlH6 htmlH5 HtmlHiLink htmlHead PreProc HtmlHiLink htmlTitle Title HtmlHiLink htmlBoldItalicUnderline htmlBoldUnderlineItalic HtmlHiLink htmlUnderlineBold htmlBoldUnderline HtmlHiLink htmlUnderlineItalicBold htmlBoldUnderlineItalic HtmlHiLink htmlUnderlineBoldItalic htmlBoldUnderlineItalic HtmlHiLink htmlItalicUnderline htmlUnderlineItalic HtmlHiLink htmlItalicBold htmlBoldItalic HtmlHiLink htmlItalicBoldUnderline htmlBoldUnderlineItalic HtmlHiLink htmlItalicUnderlineBold htmlBoldUnderlineItalic HtmlHiLink htmlLink Underlined if !exists("html_my_rendering") hi def htmlBold term=bold cterm=bold gui=bold hi def htmlBoldUnderline term=bold,underline cterm=bold,underline gui=bold,underline hi def htmlBoldItalic term=bold,italic cterm=bold,italic gui=bold,italic hi def htmlBoldUnderlineItalic term=bold,italic,underline cterm=bold,italic,underline gui=bold,italic,underline hi def htmlUnderline term=underline cterm=underline gui=underline hi def htmlUnderlineItalic term=italic,underline cterm=italic,underline gui=italic,underline hi def htmlItalic term=italic cterm=italic gui=italic endif endif HtmlHiLink htmlPreStmt PreProc HtmlHiLink htmlPreError Error HtmlHiLink htmlPreProc PreProc HtmlHiLink htmlPreAttr String HtmlHiLink htmlPreProcAttrName PreProc HtmlHiLink htmlPreProcAttrError Error HtmlHiLink htmlSpecial Special HtmlHiLink htmlSpecialChar Special HtmlHiLink htmlString String HtmlHiLink htmlStatement Statement HtmlHiLink htmlComment Comment HtmlHiLink htmlCommentPart Comment HtmlHiLink htmlValue String HtmlHiLink htmlCommentError htmlError HtmlHiLink htmlTagError htmlError HtmlHiLink htmlEvent javaScript HtmlHiLink htmlError Error HtmlHiLink javaScript Special HtmlHiLink javaScriptExpression javaScript HtmlHiLink htmlCssStyleComment Comment HtmlHiLink htmlCssDefinition Specialendif delcommand HtmlHiLink let b:current_syntax = "html" if main_syntax == 'html' unlet main_syntaxendif " vim: ts=8 "自动匹配HTML标签function! InsertHtmlTag() let pat = '\c' normal! a> let save_cursor = getpos('.') let result = matchstr(getline(save_cursor[1]), pat) "if (search(pat, 'b', save_cursor[1]) && searchpair('','bn',0, getline('.')) > 0) if (search(pat, 'b', save_cursor[1])) normal! lyiwf> normal! a normal! p normal! a> endif :call cursor(save_cursor[1], save_cursor[2], save_cursor[3])endfunctioninoremap > :call InsertHtmlTag()a
本文介绍了如何使用Vim的HTML.vim插件进行语法高亮和智能标签插入,涵盖了HTML标签、语法匹配、注释处理和特定版本兼容性。通过HtmlHiLink函数实现不同版本间的语法同步,提升编程体验。

238

被折叠的 条评论
为什么被折叠?



