手记

html.vim

 " Vim syntax file

" Language: HTML" Maintainer: Claudio Fleiner <claudio@fleiner.com>" 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 <args>else  command! -nargs=+ HtmlHiLink hi def link <args>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=+<[^/]+   end=+>+ contains=htmlTagN,htmlString,htmlArg,htmlValue,htmlTagError,htmlEvent,htmlCssDefinition,@htmlPreproc,@htmlArgClustersyn match   htmlTagN     contained +<\s*[-a-zA-Z0-9]\++hs=s+1 contains=htmlTagName,htmlSpecialTagName,@htmlTagNameClustersyn match   htmlTagN     contained +</\s*[-a-zA-Z0-9]\++hs=s+2 contains=htmlTagName,htmlSpecialTagName,@htmlTagNameClustersyn match   htmlTagError contained "[^>]<"ms=s+1  " tag namessyn keyword htmlTagName contained address applet area a base basefontsyn keyword htmlTagName contained big blockquote br caption centersyn keyword htmlTagName contained cite code dd dfn dir div dl dt fontsyn keyword htmlTagName contained form hr html imgsyn keyword htmlTagName contained input isindex kbd li link map menusyn keyword htmlTagName contained meta ol option param pre p samp spansyn keyword htmlTagName contained select small strike sub supsyn keyword htmlTagName contained table td textarea th tr tt ul var xmpsyn match htmlTagName contained "\<\(b\|i\|u\|h[1-6]\|em\|strong\|head\|body\|title\)\>" " 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 "\<\(http-equiv\|href\|title\)="me=e-1 " Netscape extensionssyn keyword htmlTagName contained frame noframes frameset nobr blinksyn keyword htmlTagName contained layer ilayer nolayer spacersyn keyword htmlArg     contained frameborder noresize pagex pagey above belowsyn keyword htmlArg     contained left top visibility clip id noshadesyn match   htmlArg     contained "\<z-index\>" " Microsoft extensionssyn keyword htmlTagName contained marquee " html 4.0 arg namessyn match   htmlArg contained "\<\(accept-charset\|label\)\>"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=+<!--+    end=+--\s*>+else  syn region htmlComment                start=+<!+      end=+>+   contains=htmlCommentPart,htmlCommentError  syn match  htmlCommentError contained "[^><!]"  syn region htmlCommentPart  contained start=+--+      end=+--\s*+  contains=@htmlPreProcendifsyn region htmlComment                  start=+<!DOCTYPE+ keepend end=+>+ " server-parsed commandssyn region htmlPreProc start=+<!--#+ end=+-->+ contains=htmlPreStmt,htmlPreError,htmlPreAttrsyn match htmlPreStmt contained "<!--#\(config\|echo\|exec\|fsize\|flastmod\|include\|printenv\|set\|if\|elif\|else\|endif\|geoguide\)\>"syn match htmlPreError contained "<!--#\S*"ms=s+4syn match htmlPreAttr contained "\w\+=[^"]\S\+" contains=htmlPreProcAttrError,htmlPreProcAttrNamesyn region htmlPreAttr contained start=+\w\+="+ skip=+\\\\\|\\"+ end=+"+ contains=htmlPreProcAttrName keependsyn match htmlPreProcAttrError contained "\w\+="he=e-1syn match htmlPreProcAttrName contained "\(expr\|errmsg\|sizefmt\|timefmt\|var\|cgi\|cmd\|file\|virtual\|value\)="he=e-1 if !exists("html_no_rendering")  " rendering  syn cluster htmlTop contains=@Spell,htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,javaScript,@htmlPreproc   syn region htmlBold start="<b\>" end="</b>"me=e-4 contains=@htmlTop,htmlBoldUnderline,htmlBoldItalic  syn region htmlBold start="<strong\>" end="</strong>"me=e-9 contains=@htmlTop,htmlBoldUnderline,htmlBoldItalic  syn region htmlBoldUnderline contained start="<u\>" end="</u>"me=e-4 contains=@htmlTop,htmlBoldUnderlineItalic  syn region htmlBoldItalic contained start="<i\>" end="</i>"me=e-4 contains=@htmlTop,htmlBoldItalicUnderline  syn region htmlBoldItalic contained start="<em\>" end="</em>"me=e-5 contains=@htmlTop,htmlBoldItalicUnderline  syn region htmlBoldUnderlineItalic contained start="<i\>" end="</i>"me=e-4 contains=@htmlTop  syn region htmlBoldUnderlineItalic contained start="<em\>" end="</em>"me=e-5 contains=@htmlTop  syn region htmlBoldItalicUnderline contained start="<u\>" end="</u>"me=e-4 contains=@htmlTop,htmlBoldUnderlineItalic   syn region htmlUnderline start="<u\>" end="</u>"me=e-4 contains=@htmlTop,htmlUnderlineBold,htmlUnderlineItalic  syn region htmlUnderlineBold contained start="<b\>" end="</b>"me=e-4 contains=@htmlTop,htmlUnderlineBoldItalic  syn region htmlUnderlineBold contained start="<strong\>" end="</strong>"me=e-9 contains=@htmlTop,htmlUnderlineBoldItalic  syn region htmlUnderlineItalic contained start="<i\>" end="</i>"me=e-4 contains=@htmlTop,htmlUnderlineItalicBold  syn region htmlUnderlineItalic contained start="<em\>" end="</em>"me=e-5 contains=@htmlTop,htmlUnderlineItalicBold  syn region htmlUnderlineItalicBold contained start="<b\>" end="</b>"me=e-4 contains=@htmlTop  syn region htmlUnderlineItalicBold contained start="<strong\>" end="</strong>"me=e-9 contains=@htmlTop  syn region htmlUnderlineBoldItalic contained start="<i\>" end="</i>"me=e-4 contains=@htmlTop  syn region htmlUnderlineBoldItalic contained start="<em\>" end="</em>"me=e-5 contains=@htmlTop   syn region htmlItalic start="<i\>" end="</i>"me=e-4 contains=@htmlTop,htmlItalicBold,htmlItalicUnderline  syn region htmlItalic start="<em\>" end="</em>"me=e-5 contains=@htmlTop  syn region htmlItalicBold contained start="<b\>" end="</b>"me=e-4 contains=@htmlTop,htmlItalicBoldUnderline  syn region htmlItalicBold contained start="<strong\>" end="</strong>"me=e-9 contains=@htmlTop,htmlItalicBoldUnderline  syn region htmlItalicBoldUnderline contained start="<u\>" end="</u>"me=e-4 contains=@htmlTop  syn region htmlItalicUnderline contained start="<u\>" end="</u>"me=e-4 contains=@htmlTop,htmlItalicUnderlineBold  syn region htmlItalicUnderlineBold contained start="<b\>" end="</b>"me=e-4 contains=@htmlTop  syn region htmlItalicUnderlineBold contained start="<strong\>" end="</strong>"me=e-9 contains=@htmlTop   syn region htmlLink start="<a\>\_[^>]*\<href\>" end="</a>"me=e-4 contains=@Spell,htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,javaScript,@htmlPreproc  syn region htmlH1 start="<h1\>" end="</h1>"me=e-5 contains=@htmlTop  syn region htmlH2 start="<h2\>" end="</h2>"me=e-5 contains=@htmlTop  syn region htmlH3 start="<h3\>" end="</h3>"me=e-5 contains=@htmlTop  syn region htmlH4 start="<h4\>" end="</h4>"me=e-5 contains=@htmlTop  syn region htmlH5 start="<h5\>" end="</h5>"me=e-5 contains=@htmlTop  syn region htmlH6 start="<h6\>" end="</h6>"me=e-5 contains=@htmlTop  syn region htmlHead start="<head\>" end="</head>"me=e-7 end="<body\>"me=e-5 end="<h[1-6]\>"me=e-3 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,htmlTitle,javaScript,cssStyle,@htmlPreproc  syn region htmlTitle start="<title\>" end="</title>"me=e-8 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,javaScript,@htmlPreprocendif syn keyword htmlTagName         contained noscriptsyn keyword htmlSpecialTagName  contained script styleif main_syntax != 'java' || exists("java_javascript")  " JAVA SCRIPT  syn include @htmlJavaScript syntax/javascript.vim  unlet b:current_syntax  syn region  javaScript start=+<script[^>]*>+ keepend end=+</script>+me=s-1 contains=@htmlJavaScript,htmlCssStyleComment,htmlScriptTag,@htmlPreproc  syn region  htmlScriptTag     contained start=+<script+ end=+>+       contains=htmlTagN,htmlString,htmlArg,htmlValue,htmlTagError,htmlEvent  HtmlHiLink htmlScriptTag htmlTag   " html events (i.e. arguments that include javascript commands)  if exists("html_extended_events")    syn region htmlEvent        contained start=+\<on\a\+\s*=[\t ]*'+ end=+'+ contains=htmlEventSQ    syn region htmlEvent        contained start=+\<on\a\+\s*=[\t ]*"+ end=+"+ contains=htmlEventDQ  else    syn region htmlEvent        contained start=+\<on\a\+\s*=[\t ]*'+ end=+'+ keepend contains=htmlEventSQ    syn region htmlEvent        contained start=+\<on\a\+\s*=[\t ]*"+ end=+"+ keepend contains=htmlEventDQ  endif  syn region htmlEventSQ        contained start=+'+ms=s+1 end=+'+me=s-1 contains=@htmlJavaScript  syn region htmlEventDQ        contained start=+"+ms=s+1 end=+"+me=s-1 contains=@htmlJavaScript  HtmlHiLink htmlEventSQ htmlEvent  HtmlHiLink htmlEventDQ htmlEvent   " a javascript expression is used as an arg value  syn region  javaScriptExpression contained start=+&{+ keepend end=+};+ contains=@htmlJavaScript,@htmlPreprocendif if main_syntax != 'java' || exists("java_vb")  " VB SCRIPT  syn include @htmlVbScript syntax/vb.vim  unlet b:current_syntax  syn region  javaScript start=+<script [^>]*language *=[^>]*vbscript[^>]*>+ keepend end=+</script>+me=s-1 contains=@htmlVbScript,htmlCssStyleComment,htmlScriptTag,@htmlPreprocendif syn cluster htmlJavaScript      add=@htmlPreproc if main_syntax != 'java' || exists("java_css")  " embedded style sheets  syn keyword htmlArg           contained media  syn include @htmlCss syntax/css.vim  unlet b:current_syntax  syn region cssStyle start=+<style+ keepend end=+</style>+ contains=@htmlCss,htmlTag,htmlEndTag,htmlCssStyleComment,@htmlPreproc  syn match htmlCssStyleComment 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 "<[/a-zA-Z]"  syn sync match htmlHighlight groupthere javaScript "<script"  syn sync match htmlHighlightSkip "^.*['\"].*$"  syn sync minlines=10endif " The default highlighting.if version >= 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<\w\+\s*\(\s\+\w\+\s*=\s*[''#$;,()."a-z0-9]\+\)*\s*>'        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 > <ESC>:call InsertHtmlTag()<CR>a

0人推荐
随时随地看视频
慕课网APP