Mercurial > vim
diff runtime/filetype.vim @ 216:da182deebec7
updated for version 7.0061
author | vimboss |
---|---|
date | Fri, 18 Mar 2005 20:25:31 +0000 |
parents | 7e70fc748752 |
children | 7fd4b5df33be |
line wrap: on
line diff
--- a/runtime/filetype.vim +++ b/runtime/filetype.vim @@ -1,7 +1,7 @@ " Vim support file to detect file types " " Maintainer: Bram Moolenaar <Bram@vim.org> -" Last Change: 2005 Mar 06 +" Last Change: 2005 Mar 17 " Listen very carefully, I will say this only once if exists("did_load_filetypes") @@ -37,10 +37,18 @@ if !exists("g:ft_ignore_pat") let g:ft_ignore_pat = '\.\(Z\|gz\|bz2\|zip\|tgz\)$' endif +" Function used for patterns that end in a star: don't set the filetype if the +" file name matches ft_ignore_pat. +fun! s:StarSetf(ft) + if expand("<amatch>") !~ g:ft_ignore_pat + exe 'setf ' . a:ft + endif +endfun + " Abaqus or Trasys -au BufNewFile,BufRead *.inp call FTCheck_inp() +au BufNewFile,BufRead *.inp call s:Check_inp() -fun! FTCheck_inp() +fun! s:Check_inp() if getline(1) =~ '^\*' setf abaqus else @@ -88,10 +96,11 @@ au BufNewFile,BufRead *.run setf ampl au BufNewFile,BufRead build.xml setf ant " Apache style config file -au BufNewFile,BufRead proftpd.conf* setf apachestyle +au BufNewFile,BufRead proftpd.conf* call s:StarSetf('apachestyle') " Apache config file -au BufNewFile,BufRead httpd.conf*,srm.conf*,access.conf*,.htaccess,apache.conf*,apache2.conf*,/etc/apache2/*.conf* setf apache +au BufNewFile,BufRead .htaccess setf apache +au BufNewFile,BufRead httpd.conf*,srm.conf*,access.conf*,apache.conf*,apache2.conf*,/etc/apache2/*.conf* call s:StarSetf('apache') " XA65 MOS6510 cross assembler au BufNewFile,BufRead *.a65 setf a65 @@ -138,18 +147,18 @@ au BufNewFile,BufRead /boot/grub/menu.ls " Assembly (all kinds) " *.lst is not pure assembly, it has two extra columns (address, byte codes) -au BufNewFile,BufRead *.asm,*.[sS],*.[aA],*.mac,*.lst call <SID>FTasm() +au BufNewFile,BufRead *.asm,*.[sS],*.[aA],*.mac,*.lst call s:FTasm() " This function checks for the kind of assembly that is wanted by the user, or " can be detected from the first five lines of the file. -fun! <SID>FTasm() +fun! s:FTasm() " make sure b:asmsyntax exists if !exists("b:asmsyntax") let b:asmsyntax = "" endif if b:asmsyntax == "" - call FTCheck_asmsyntax() + call s:FTasmsyntax() endif " if b:asmsyntax still isn't set, default to asmsyntax or GNU @@ -164,7 +173,7 @@ fun! <SID>FTasm() exe "setf " . b:asmsyntax endfun -fun! FTCheck_asmsyntax() +fun! s:FTasmsyntax() " see if file contains any asmsyntax=foo overrides. If so, change " b:asmsyntax appropriately let head = " ".getline(1)." ".getline(2)." ".getline(3)." ".getline(4). @@ -195,11 +204,11 @@ au BufNewFile,BufRead *.awk setf awk au BufNewFile,BufRead *.mch,*.ref,*.imp setf b " BASIC or Visual Basic -au BufNewFile,BufRead *.bas call <SID>FTVB("basic") +au BufNewFile,BufRead *.bas call s:FTVB("basic") " Check if one of the first five lines contains "VB_Name". In that case it is " probably a Visual Basic file. Otherwise it's assumed to be "alt" filetype. -fun! <SID>FTVB(alt) +fun! s:FTVB(alt) if getline(1).getline(2).getline(3).getline(4).getline(5) =~? 'VB_Name\|Begin VB\.\(Form\|MDIForm\|UserControl\)' setf vb else @@ -217,8 +226,8 @@ au BufNewFile,BufRead *.cmd \ if getline(1) =~ '^/\*' | setf rexx | else | setf dosbatch | endif " Batch file for 4DOS -au BufNewFile,BufRead *.btm call <SID>FTbtm() -fun! <SID>FTbtm() +au BufNewFile,BufRead *.btm call s:FTbtm() +fun! s:FTbtm() if exists("g:dosbatch_syntax_for_btm") && g:dosbatch_syntax_for_btm setf dosbatch else @@ -245,9 +254,9 @@ au BufNewFile,BufRead named.root setf b au BufNewFile,BufRead *.bl setf blank " C or lpc -au BufNewFile,BufRead *.c call <SID>FTlpc() +au BufNewFile,BufRead *.c call s:FTlpc() -fun! <SID>FTlpc() +fun! s:FTlpc() if exists("g:lpc_syntax_for_c") let lnum = 1 while lnum <= 12 @@ -262,9 +271,10 @@ fun! <SID>FTlpc() endfun " Calendar -au BufNewFile,BufRead calendar,*/.calendar/*, +au BufNewFile,BufRead calendar setf calendar +au BufNewFile,BufRead */.calendar/*, \*/share/calendar/*/calendar.*,*/share/calendar/calendar.* - \ setf calendar + \ call s:StarSetf('calendar') " C# au BufNewFile,BufRead *.cs setf cs @@ -320,14 +330,14 @@ au BufNewFile,BufRead [cC]hange[lL]og i au BufNewFile,BufRead *..ch setf chill " Changes for WEB and CWEB or CHILL -au BufNewFile,BufRead *.ch call <SID>FTchange() +au BufNewFile,BufRead *.ch call s:FTchange() " This function checks if one of the first ten lines start with a '@'. In " that case it is probably a change file. " If the first line starts with # or ! it's probably a ch file. " If a line has "main", "include", "//" ir "/*" it's probably ch. " Otherwise CHILL is assumed. -fun! <SID>FTchange() +fun! s:FTchange() let lnum = 1 while lnum <= 10 if getline(lnum)[0] == '@' @@ -358,9 +368,9 @@ au BufNewFile,BufRead *.dcl,*.icl setf au BufNewFile,BufRead *.eni setf cl " Clever or dtd -au BufNewFile,BufRead *.ent call <SID>FTent() +au BufNewFile,BufRead *.ent call s:FTent() -fun! <SID>FTent() +fun! s:FTent() " This function checks for valid cl syntax in the first five lines. " Look for either an opening comment, '#', or a block start, '{". " If not found, assume SGML. @@ -489,12 +499,12 @@ au BufNewFile,BufRead *.ed\(f\|if\|n\|o\ au BufNewFile,BufRead *.ecd setf ecd " Eiffel or Specman -au BufNewFile,BufRead *.e,*.E call FTCheck_e() +au BufNewFile,BufRead *.e,*.E call s:FTe() " Elinks configuration au BufNewFile,BufRead */etc/elinks.conf,*/.elinks/elinks.conf setf elinks -fun! FTCheck_e() +fun! s:FTe() let n = 1 while n < 100 && n < line("$") if getline(n) =~ "^\\s*\\(<'\\|'>\\)\\s*$" @@ -599,10 +609,10 @@ au BufNewFile,BufRead *.hex,*.h32 setf au BufNewFile,BufRead *.t.html setf tilde " HTML (.shtml and .stm for server side, .rhtml for Ruby html) -au BufNewFile,BufRead *.html,*.htm,*.shtml,*.rhtml,*.stm call <SID>FTCheck_html() +au BufNewFile,BufRead *.html,*.htm,*.shtml,*.rhtml,*.stm call s:FThtml() " Distinguish between HTML and XHTML -fun! <SID>FTCheck_html() +fun! s:FThtml() let n = 1 while n < 10 && n < line("$") if getline(n) =~ '\<DTD\s\+XHTML\s' @@ -628,10 +638,10 @@ au BufNewFile,BufRead *.hb setf hb au BufNewFile,BufRead *.icn setf icon " IDL (Interface Description Language) -au BufNewFile,BufRead *.idl call <SID>FTCheck_idl() +au BufNewFile,BufRead *.idl call s:FTidl() " Distinguish between standard IDL and MS-IDL -fun! <SID>FTCheck_idl() +fun! s:FTidl() let n = 1 while n < 50 && n < line("$") if getline(n) =~ '^\s*import\s\+"\(unknwn\|objidl\)\.idl"' @@ -693,7 +703,8 @@ au BufNewFile,BufRead *.js,*.javascript au BufNewFile,BufRead *.jsp setf jsp " Java Properties resource file (note: doesn't catch font.properties.pl) -au BufNewFile,BufRead *.properties,*.properties_??,*.properties_??_??,*.properties_??_??_* setf jproperties +au BufNewFile,BufRead *.properties,*.properties_??,*.properties_??_?? setf jproperties +au BufNewFile,BufRead *.properties_??_??_* call s:StarSetf('jproperties') " Jess au BufNewFile,BufRead *.clp setf jess @@ -735,7 +746,7 @@ au BufNewFile,BufRead lftp.conf,.lftprc, au BufNewFile,BufRead *.ll setf lifelines " Lilo: Linux loader -au BufNewFile,BufRead lilo.conf* setf lilo +au BufNewFile,BufRead lilo.conf* call s:StarSetf('lilo') " Lisp (*.el = ELisp, *.cl = Common Lisp, *.jl = librep Lisp) if has("fname_case") @@ -791,9 +802,9 @@ au BufNewFile,BufRead *.mv,*.mpl,*.mws au BufNewFile,BufRead *.mason,*.mhtml setf mason " Matlab or Objective C -au BufNewFile,BufRead *.m call FTCheck_m() +au BufNewFile,BufRead *.m call s:FTm() -fun! FTCheck_m() +fun! s:FTm() let n = 1 while n < 10 let line = getline(n) @@ -824,9 +835,9 @@ au BufNewFile,BufRead *.mf setf mf au BufNewFile,BufRead *.mp setf mp " MMIX or VMS makefile -au BufNewFile,BufRead *.mms call FTCheck_mms() +au BufNewFile,BufRead *.mms call s:FTmms() -fun! FTCheck_mms() +fun! s:FTmms() let n = 1 while n < 10 let line = getline(n) @@ -867,7 +878,9 @@ au BufNewFile,BufRead *.moo setf moo " Modconf au BufNewFile,BufRead /etc/modules.conf,/etc/conf.modules setf modconf au BufNewFile,BufRead /etc/modutils/* - \ if executable(expand("<afile>")) != 1 | setf modconf | endif + \ if executable(expand("<afile>")) != 1 + \| call s:StarSetf('modconf') + \|endif " Mplayer config au BufNewFile,BufRead mplayer.conf,*/.mplayer/config setf mplayerconf @@ -891,7 +904,8 @@ au BufRead,BufNewFile *.mu setf mupad au BufNewFile,BufRead *.mush setf mush " Mutt setup file -au BufNewFile,BufRead .muttrc*,*/.mutt/muttrc*,Muttrc setf muttrc +au BufNewFile,BufRead Muttrc setf muttrc +au BufNewFile,BufRead .muttrc*,*/.mutt/muttrc* call s:StarSetf('muttrc') " Nastran input/DMAP "au BufNewFile,BufRead *.dat setf nastran @@ -911,11 +925,11 @@ au BufNewFile,BufRead *.me \ setf nroff | \ endif au BufNewFile,BufRead *.tr,*.nr,*.roff,*.tmac,*.mom setf nroff -au BufNewFile,BufRead *.[1-9] call <SID>FTnroff() +au BufNewFile,BufRead *.[1-9] call s:FTnroff() " This function checks if one of the first five lines start with a dot. In " that case it is probably an nroff file: 'filetype' is set and 1 is returned. -fun! <SID>FTnroff() +fun! s:FTnroff() if getline(1)[0] . getline(2)[0] . getline(3)[0] . getline(4)[0] . getline(5)[0] =~ '\.' setf nroff return 1 @@ -924,9 +938,9 @@ fun! <SID>FTnroff() endfun " Nroff or Objective C++ -au BufNewFile,BufRead *.mm call <SID>FTcheck_mm() +au BufNewFile,BufRead *.mm call s:FTmm() -fun! <SID>FTcheck_mm() +fun! s:FTmm() let n = 1 while n < 10 let line = getline(n) @@ -977,13 +991,13 @@ au BufNewFile,BufRead *.dpr setf pasca " Perl if has("fname_case") - au BufNewFile,BufRead *.pl,*.PL call FTCheck_pl() + au BufNewFile,BufRead *.pl,*.PL call s:FTpl() else - au BufNewFile,BufRead *.pl call FTCheck_pl() + au BufNewFile,BufRead *.pl call s:FTpl() endif au BufNewFile,BufRead *.plx setf perl -fun! FTCheck_pl() +fun! s:FTpl() if exists("g:filetype_pl") exe "setf " . g:filetype_pl else @@ -1057,9 +1071,9 @@ au BufNewFile,BufRead *.pov setf pov au BufNewFile,BufRead .povrayrc setf povini " Povray, PHP or assembly -au BufNewFile,BufRead *.inc call FTCheck_inc() +au BufNewFile,BufRead *.inc call s:FTinc() -fun! FTCheck_inc() +fun! s:FTinc() if exists("g:filetype_inc") exe "setf " . g:filetype_inc else @@ -1071,7 +1085,7 @@ fun! FTCheck_inc() elseif lines =~ "<?" setf php else - call FTCheck_asmsyntax() + call s:FTasmsyntax() if exists("b:asmsyntax") exe "setf " . b:asmsyntax else @@ -1101,9 +1115,9 @@ au BufNewFile,BufRead .pc setf proc au BufNewFile,BufRead .procmail,.procmailrc setf procmail " Progress or CWEB -au BufNewFile,BufRead *.w call <SID>FTprogress_cweb() +au BufNewFile,BufRead *.w call s:FTprogress_cweb() -function! <SID>FTprogress_cweb() +function! s:FTprogress_cweb() if exists("g:filetype_w") exe "setf " . g:filetype_w return @@ -1116,9 +1130,9 @@ function! <SID>FTprogress_cweb() endfun " Progress or assembly -au BufNewFile,BufRead *.i call <SID>FTprogress_asm() +au BufNewFile,BufRead *.i call s:FTprogress_asm() -function! <SID>FTprogress_asm() +function! s:FTprogress_asm() if exists("g:filetype_i") exe "setf " . g:filetype_i return @@ -1129,7 +1143,7 @@ function! <SID>FTprogress_asm() while lnum <= 10 let line = getline(lnum) if line =~ '^\s*;' || line =~ '^\*' - call FTCheck_asm() + call s:FTasm() return elseif line !~ '^\s*$' || line =~ '^/\*' " Not an empty line: Doesn't look like valid assembly code. @@ -1142,9 +1156,9 @@ function! <SID>FTprogress_asm() endfun " Progress or Pascal -au BufNewFile,BufRead *.p call <SID>FTprogress_pascal() +au BufNewFile,BufRead *.p call s:FTprogress_pascal() -function! <SID>FTprogress_pascal() +function! s:FTprogress_pascal() if exists("g:filetype_p") exe "setf " . g:filetype_p return @@ -1212,9 +1226,9 @@ au BufNewFile,BufRead *.rexx,*.rex setf au BufNewFile,BufRead *.s,*.S setf r " Rexx, Rebol or R -au BufNewFile,BufRead *.r,*.R call <SID>FTCheck_r() +au BufNewFile,BufRead *.r,*.R call s:FTr() -fun! <SID>FTCheck_r() +fun! s:FTr() if getline(1) =~ '^REBOL' setf rebol else @@ -1243,7 +1257,7 @@ fun! <SID>FTCheck_r() endfun " Remind -au BufNewFile,BufRead .reminders* setf remind +au BufNewFile,BufRead .reminders* call s:StarSetf('remind') " Resolv.conf au BufNewFile,BufRead resolv.conf setf resolv @@ -1317,7 +1331,8 @@ au BufNewFile,BufRead *.decl,*.dcl,*.dec \ endif " SGML catalog file -au BufNewFile,BufRead sgml.catalog*,catalog setf catalog +au BufNewFile,BufRead catalog setf catalog +au BufNewFile,BufRead sgml.catalog* call s:StarSetf('catalog') " Shell scripts (sh, ksh, bash, bash2, csh); Allow .profile_foo etc. " Gentoo ebuilds are actually bash scripts @@ -1325,7 +1340,11 @@ au BufNewFile,BufRead .bashrc*,bashrc,ba au BufNewFile,BufRead .kshrc*,*.ksh call SetFileTypeSH("ksh") au BufNewFile,BufRead /etc/profile,.profile*,*.sh,*.env call SetFileTypeSH(getline(1)) +" Also called from scripts.vim. fun! SetFileTypeSH(name) + if expand("<amatch>") =~ g:ft_ignore_pat + return + endif if a:name =~ '\<ksh\>' let b:is_kornshell = 1 if exists("b:is_bash") @@ -1356,7 +1375,11 @@ endfun " For shell-like file types, check for an "exec" command hidden in a comment, " as used for Tcl. +" Also called from scripts.vim, thus can't be local to this script. fun! SetFileTypeShell(name) + if expand("<amatch>") =~ g:ft_ignore_pat + return + endif let l = 2 while l < 20 && l < line("$") && getline(l) =~ '^\s*\(#\|$\)' " Skip empty and comment lines. @@ -1377,9 +1400,9 @@ endfun au BufNewFile,BufRead .tcshrc*,*.tcsh,tcsh.tcshrc,tcsh.login call SetFileTypeShell("tcsh") " csh scripts, but might also be tcsh scripts (on some systems csh is tcsh) -au BufNewFile,BufRead .login*,.cshrc*,csh.cshrc,csh.login,csh.logout,*.csh,.alias call SetFileTypeCSH() +au BufNewFile,BufRead .login*,.cshrc*,csh.cshrc,csh.login,csh.logout,*.csh,.alias call s:CSH() -fun! SetFileTypeCSH() +fun! s:CSH() if exists("g:filetype_csh") call SetFileTypeShell(g:filetype_csh) elseif &shell =~ "tcsh" @@ -1390,7 +1413,8 @@ fun! SetFileTypeCSH() endfun " Z-Shell script -au BufNewFile,BufRead .zsh*,.zlog*,.zprofile,/etc/zprofile,.zfbfmarks,.zcompdump* setf zsh +au BufNewFile,BufRead .zprofile,/etc/zprofile,.zfbfmarks setf zsh +au BufNewFile,BufRead .zsh*,.zlog*,.zcompdump* call s:StarSetf('zsh') " Scheme au BufNewFile,BufRead *.scm,*.ss setf scheme @@ -1467,9 +1491,9 @@ au BufNewFile,BufRead squid.conf setf s au BufNewFile,BufRead *.tyb,*.typ,*.tyc,*.pkb,*.pks setf sql " SQL -au BufNewFile,BufRead *.sql call SetFileTypeSQL() +au BufNewFile,BufRead *.sql call s:SQL() -fun! SetFileTypeSQL() +fun! s:SQL() if exists("g:filetype_sql") exe "setf " . g:filetype_sql else @@ -1500,7 +1524,7 @@ au BufNewFile,BufRead /etc/sudoers,sudoe " Tads (or Nroff) au BufNewFile,BufRead *.t - \ if !<SID>FTnroff() | setf tads | endif + \ if !s:FTnroff() | setf tads | endif " Tags au BufNewFile,BufRead tags setf tags @@ -1557,7 +1581,8 @@ au BufNewFile,BufRead *.uc setf uc au BufNewFile,BufRead *.v setf verilog " VHDL -au BufNewFile,BufRead *.hdl,*.vhd,*.vhdl,*.vhdl_[0-9]*,*.vbe,*.vst setf vhdl +au BufNewFile,BufRead *.hdl,*.vhd,*.vhdl,*.vbe,*.vst setf vhdl +au BufNewFile,BufRead *.vhdl_[0-9]* call s:StarSetf('vhdl') " Vim script au BufNewFile,BufRead *.vim,.exrc,_exrc setf vim @@ -1569,7 +1594,7 @@ au BufNewFile,BufRead .viminfo,_viminfo au BufRead,BufNewFile *.hw,*.module,*.pkg setf virata " Visual Basic (also uses *.bas) or FORM -au BufNewFile,BufRead *.frm call <SID>FTVB("form") +au BufNewFile,BufRead *.frm call s:FTVB("form") " SaxBasic is close to Visual Basic au BufNewFile,BufRead *.sba setf vb @@ -1641,7 +1666,7 @@ au BufNewFile,BufRead .Xdefaults,.Xpdefa " Xmath au BufNewFile,BufRead *.msc,*.msf setf xmath au BufNewFile,BufRead *.ms - \ if !<SID>FTnroff() | setf xmath | endif + \ if !s:FTnroff() | setf xmath | endif " XML au BufNewFile,BufRead *.xml @@ -1681,7 +1706,7 @@ augroup END " Source the user-specified filetype file, for backwards compatibility with " Vim 5.x. -if exists("myfiletypefile") && file_readable(expand(myfiletypefile)) +if exists("myfiletypefile") && filereadable(expand(myfiletypefile)) execute "source " . myfiletypefile endif @@ -1699,80 +1724,93 @@ au StdinReadPost * if !did_filetype() | " Extra checks for when no filetype has been detected now. Mostly used for " patterns that end in "*". E.g., "zsh*" matches "zsh.vim", but that's a Vim " script file. +" Most of these should call s:StarSetf() to avoid names ending in .gz and the +" like are used. " BIND zone -au BufNewFile,BufRead /var/named/* setf bindzone +au BufNewFile,BufRead /var/named/* call s:StarSetf('bindzone') " Changelog -au BufNewFile,BufRead [cC]hange[lL]og* if getline(1) =~ '; urgency=' - \| setf debchangelog | else | setf changelog | endif +au BufNewFile,BufRead [cC]hange[lL]og* + \ if getline(1) =~ '; urgency=' + \| call s:StarSetf('debchangelog') + \|else + \| call s:StarSetf('changelog') + \|endif " Crontab -au BufNewFile,BufRead crontab,crontab.* setf crontab +au BufNewFile,BufRead crontab,crontab.* call s:StarSetf('crontab') " Dracula -au BufNewFile,BufRead drac.* setf dracula +au BufNewFile,BufRead drac.* call s:StarSetf('dracula') " Fvwm au BufNewFile,BufRead *fvwmrc*,*fvwm95*.hook - \ let b:fvwm_version = 1 | setf fvwm + \ let b:fvwm_version = 1 | call s:StarSetf('fvwm') au BufNewFile,BufRead *fvwm2rc* - \ if expand("<afile>:e") == "m4" | setf fvwm2m4 | else | - \ let b:fvwm_version = 2 | setf fvwm | endif + \ if expand("<afile>:e") == "m4" + \| call s:StarSetf('fvwm2m4') + \|else + \| let b:fvwm_version = 2 | call s:StarSetf('fvwm') + \|endif " GTK RC -au BufNewFile,BufRead .gtkrc*,gtkrc* setf gtkrc +au BufNewFile,BufRead .gtkrc*,gtkrc* call s:StarSetf('gtkrc') " Jam -au BufNewFile,BufRead Prl*.*,JAM*.* setf jam +au BufNewFile,BufRead Prl*.*,JAM*.* call s:StarSetf('jam') " Jargon au! BufNewFile,BufRead *jarg* - \ if getline(1).getline(2).getline(3).getline(4).getline(5) =~? 'THIS IS THE JARGON FILE' | - \ setf jargon | - \ endif + \ if getline(1).getline(2).getline(3).getline(4).getline(5) =~? 'THIS IS THE JARGON FILE' + \| call s:StarSetf('jargon') + \|endif " Makefile -au BufNewFile,BufRead [mM]akefile* setf make +au BufNewFile,BufRead [mM]akefile* call s:StarSetf('make') " Ruby Makefile -au BufNewFile,BufRead [rR]akefile* setf ruby +au BufNewFile,BufRead [rR]akefile* call s:StarSetf('ruby') " Mutt setup file -au BufNewFile,BufRead muttrc*,Muttrc* setf muttrc +au BufNewFile,BufRead muttrc*,Muttrc* call s:StarSetf('muttrc') " Nroff macros -au BufNewFile,BufRead tmac.* setf nroff +au BufNewFile,BufRead tmac.* call s:StarSetf('nroff') " Printcap and Termcap au BufNewFile,BufRead *printcap* - \ if !did_filetype() | let b:ptcap_type = "print" | setf ptcap | endif + \ if !did_filetype() + \| let b:ptcap_type = "print" | call s:StarSetf('ptcap') + \|endif au BufNewFile,BufRead *termcap* - \ if !did_filetype() | let b:ptcap_type = "term" | setf ptcap | endif + \ if !did_filetype() + \| let b:ptcap_type = "term" | call s:StarSetf('ptcap') + \|endif " Vim script -au BufNewFile,BufRead *vimrc* setf vim +au BufNewFile,BufRead *vimrc* call s:StarSetf('vim') " Subversion commit file au BufNewFile,BufRead svn-commit*.tmp setf svn " X resources file -au BufNewFile,BufRead Xresources*,*/app-defaults/*,*/Xresources/* setf xdefaults +au BufNewFile,BufRead Xresources*,*/app-defaults/*,*/Xresources/* call s:StarSetf('xdefaults') " XFree86 config au BufNewFile,BufRead XF86Config-4* - \ let b:xf86c_xfree86_version = 4 | setf xf86conf + \ let b:xf86c_xfree86_version = 4 | call s:StarSetf('xf86conf') au BufNewFile,BufRead XF86Config* - \ if getline(1) =~ '\<XConfigurator\>' | - \ let b:xf86c_xfree86_version = 3 | - \ endif | - \ setf xf86conf + \ if getline(1) =~ '\<XConfigurator\>' + \| let b:xf86c_xfree86_version = 3 + \|endif + \|call s:StarSetf('xf86conf') " X11 xmodmap -au BufNewFile,BufRead *xmodmap* setf xmodmap +au BufNewFile,BufRead *xmodmap* call s:StarSetf('xmodmap') " Z-Shell script -au BufNewFile,BufRead zsh*,zlog* setf zsh +au BufNewFile,BufRead zsh*,zlog* call s:StarSetf('zsh') " Generic configuration file (check this last, it's just guessing!)