1" Vim filetype plugin file 2" Language: html 3" Maintainer: Dan Sharp <dwsharp at hotmail dot com> 4" Last Changed: 2006 Apr 26 5" URL: http://mywebpage.netscape.com/sharppeople/vim/ftplugin 6 7if exists("b:did_ftplugin") | finish | endif 8let b:did_ftplugin = 1 9 10" Make sure the continuation lines below do not cause problems in 11" compatibility mode. 12let s:save_cpo = &cpo 13set cpo-=C 14 15setlocal commentstring=<!--%s--> 16 17if exists('&omnifunc') 18" Distinguish between HTML versions 19" To use with other HTML versions add another 20" elseif condition to match proper DOCTYPE 21setlocal omnifunc=htmlcomplete#CompleteTags 22 23if &filetype == 'xhtml' 24 let b:html_omni_flavor = 'xhtml10s' 25else 26 let b:html_omni_flavor = 'html401t' 27endif 28let i = 1 29while i < 10 && i < line("$") 30 let line = getline(i) 31 if line =~ '<!DOCTYPE.*\<DTD HTML 3\.2' 32 let b:html_omni_flavor = 'html32' 33 break 34 elseif line =~ '<!DOCTYPE.*\<DTD HTML 4\.0 Transitional' 35 let b:html_omni_flavor = 'html40t' 36 break 37 elseif line =~ '<!DOCTYPE.*\<DTD HTML 4\.0 Frameset' 38 let b:html_omni_flavor = 'html40f' 39 break 40 elseif line =~ '<!DOCTYPE.*\<DTD HTML 4\.0' 41 let b:html_omni_flavor = 'html40s' 42 break 43 elseif line =~ '<!DOCTYPE.*\<DTD HTML 4\.01 Transitional' 44 let b:html_omni_flavor = 'html401t' 45 break 46 elseif line =~ '<!DOCTYPE.*\<DTD HTML 4\.01 Frameset' 47 let b:html_omni_flavor = 'html401f' 48 break 49 elseif line =~ '<!DOCTYPE.*\<DTD HTML 4\.01' 50 let b:html_omni_flavor = 'html401s' 51 break 52 elseif line =~ '<!DOCTYPE.*\<DTD XHTML 1\.0 Transitional' 53 let b:html_omni_flavor = 'xhtml10t' 54 break 55 elseif line =~ '<!DOCTYPE.*\<DTD XHTML 1\.0 Frameset' 56 let b:html_omni_flavor = 'xhtml10f' 57 break 58 elseif line =~ '<!DOCTYPE.*\<DTD XHTML 1\.0 Strict' 59 let b:html_omni_flavor = 'xhtml10s' 60 break 61 elseif line =~ '<!DOCTYPE.*\<DTD XHTML 1\.1' 62 let b:html_omni_flavor = 'xhtml11' 63 break 64 endif 65 let i += 1 66endwhile 67endif 68 69" HTML: thanks to Johannes Zellner and Benji Fisher. 70if exists("loaded_matchit") 71 let b:match_ignorecase = 1 72 let b:match_skip = 's:Comment' 73 let b:match_words = '<:>,' . 74 \ '<\@<=[ou]l\>[^>]*\%(>\|$\):<\@<=li\>:<\@<=/[ou]l>,' . 75 \ '<\@<=dl\>[^>]*\%(>\|$\):<\@<=d[td]\>:<\@<=/dl>,' . 76 \ '<\@<=\([^/][^ \t>]*\)[^>]*\%(>\|$\):<\@<=/\1>' 77endif 78 79" Change the :browse e filter to primarily show HTML-related files. 80if has("gui_win32") 81 let b:browsefilter="HTML Files (*.html,*.htm)\t*.htm;*.html\n" . 82 \ "JavaScript Files (*.js)\t*.js\n" . 83 \ "Cascading StyleSheets (*.css)\t*.css\n" . 84 \ "All Files (*.*)\t*.*\n" 85endif 86 87" Undo the stuff we changed. 88let b:undo_ftplugin = "setlocal commentstring<" 89 \ " | unlet! b:match_ignorecase b:match_skip b:match_words b:browsefilter" 90 91" Restore the saved compatibility options. 92let &cpo = s:save_cpo 93