1071d4279SBram Moolenaar" Vim support file to detect file types 2071d4279SBram Moolenaar" 3071d4279SBram Moolenaar" Maintainer: Bram Moolenaar <[email protected]> 4*519cc559SBram Moolenaar" Last Change: 2021 Nov 16 5071d4279SBram Moolenaar 6071d4279SBram Moolenaar" Listen very carefully, I will say this only once 7071d4279SBram Moolenaarif exists("did_load_filetypes") 8071d4279SBram Moolenaar finish 9071d4279SBram Moolenaarendif 10071d4279SBram Moolenaarlet did_load_filetypes = 1 11071d4279SBram Moolenaar 12071d4279SBram Moolenaar" Line continuation is used here, remove 'C' from 'cpoptions' 13071d4279SBram Moolenaarlet s:cpo_save = &cpo 14071d4279SBram Moolenaarset cpo&vim 15071d4279SBram Moolenaar 16071d4279SBram Moolenaaraugroup filetypedetect 17071d4279SBram Moolenaar 18071d4279SBram Moolenaar" Ignored extensions 19aebaf89fSBram Moolenaarif exists("*fnameescape") 2006481427SBram Moolenaarau BufNewFile,BufRead ?\+.orig,?\+.bak,?\+.old,?\+.new,?\+.dpkg-dist,?\+.dpkg-old,?\+.dpkg-new,?\+.dpkg-bak,?\+.rpmsave,?\+.rpmnew,?\+.pacsave,?\+.pacnew 21aebaf89fSBram Moolenaar \ exe "doau filetypedetect BufRead " . fnameescape(expand("<afile>:r")) 22071d4279SBram Moolenaarau BufNewFile,BufRead *~ 23071d4279SBram Moolenaar \ let s:name = expand("<afile>") | 24071d4279SBram Moolenaar \ let s:short = substitute(s:name, '\~$', '', '') | 25071d4279SBram Moolenaar \ if s:name != s:short && s:short != "" | 26aebaf89fSBram Moolenaar \ exe "doau filetypedetect BufRead " . fnameescape(s:short) | 27071d4279SBram Moolenaar \ endif | 28e37d50a5SBram Moolenaar \ unlet! s:name s:short 291e015460SBram Moolenaarau BufNewFile,BufRead ?\+.in 30071d4279SBram Moolenaar \ if expand("<afile>:t") != "configure.in" | 31aebaf89fSBram Moolenaar \ exe "doau filetypedetect BufRead " . fnameescape(expand("<afile>:r")) | 32071d4279SBram Moolenaar \ endif 33aebaf89fSBram Moolenaarelseif &verbose > 0 34aebaf89fSBram Moolenaar echomsg "Warning: some filetypes will not be recognized because this version of Vim does not have fnameescape()" 35aebaf89fSBram Moolenaarendif 36071d4279SBram Moolenaar 37071d4279SBram Moolenaar" Pattern used to match file names which should not be inspected. 38071d4279SBram Moolenaar" Currently finds compressed files. 39071d4279SBram Moolenaarif !exists("g:ft_ignore_pat") 40071d4279SBram Moolenaar let g:ft_ignore_pat = '\.\(Z\|gz\|bz2\|zip\|tgz\)$' 41071d4279SBram Moolenaarendif 42071d4279SBram Moolenaar 434317d9b4SBram Moolenaar" Function used for patterns that end in a star: don't set the filetype if the 444317d9b4SBram Moolenaar" file name matches ft_ignore_pat. 45723dd946SBram Moolenaar" When using this, the entry should probably be further down below with the 46723dd946SBram Moolenaar" other StarSetf() calls. 4734e0bfaaSBram Moolenaarfunc! s:StarSetf(ft) 484317d9b4SBram Moolenaar if expand("<amatch>") !~ g:ft_ignore_pat 494317d9b4SBram Moolenaar exe 'setf ' . a:ft 504317d9b4SBram Moolenaar endif 5134e0bfaaSBram Moolenaarendfunc 52071d4279SBram Moolenaar 539049298fSBram Moolenaar" Vim help file 549049298fSBram Moolenaarau BufNewFile,BufRead $VIMRUNTIME/doc/*.txt setf help 559049298fSBram Moolenaar 564317d9b4SBram Moolenaar" Abaqus or Trasys 57d09a206eSBram Moolenaarau BufNewFile,BufRead *.inp call dist#ft#Check_inp() 58071d4279SBram Moolenaar 594c92e75dSBram Moolenaar" 8th (Firth-derivative) 604c92e75dSBram Moolenaarau BufNewFile,BufRead *.8th setf 8th 614c92e75dSBram Moolenaar 62071d4279SBram Moolenaar" A-A-P recipe 63071d4279SBram Moolenaarau BufNewFile,BufRead *.aap setf aap 64071d4279SBram Moolenaar 650dc065eeSBram Moolenaar" A2ps printing utility 66adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/a2ps.cfg,*/etc/a2ps/*.cfg,a2psrc,.a2psrc setf a2ps 670dc065eeSBram Moolenaar 68d4755bb0SBram Moolenaar" ABAB/4 69d4755bb0SBram Moolenaarau BufNewFile,BufRead *.abap setf abap 70d4755bb0SBram Moolenaar 71071d4279SBram Moolenaar" ABC music notation 72071d4279SBram Moolenaarau BufNewFile,BufRead *.abc setf abc 73071d4279SBram Moolenaar 74071d4279SBram Moolenaar" ABEL 75071d4279SBram Moolenaarau BufNewFile,BufRead *.abl setf abel 76071d4279SBram Moolenaar 77071d4279SBram Moolenaar" AceDB 78071d4279SBram Moolenaarau BufNewFile,BufRead *.wrm setf acedb 79071d4279SBram Moolenaar 80071d4279SBram Moolenaar" Ada (83, 9X, 95) 81071d4279SBram Moolenaarau BufNewFile,BufRead *.adb,*.ads,*.ada setf ada 82c81e5e79SBram Moolenaarif has("vms") 83c81e5e79SBram Moolenaar au BufNewFile,BufRead *.gpr,*.ada_m,*.adc setf ada 84c81e5e79SBram Moolenaarelse 85c81e5e79SBram Moolenaar au BufNewFile,BufRead *.gpr setf ada 86c81e5e79SBram Moolenaarendif 87071d4279SBram Moolenaar 88071d4279SBram Moolenaar" AHDL 89071d4279SBram Moolenaarau BufNewFile,BufRead *.tdf setf ahdl 90071d4279SBram Moolenaar 912afc3b4fSBram Moolenaar" AIDL 922afc3b4fSBram Moolenaarau BufNewFile,BufRead *.aidl setf aidl 932afc3b4fSBram Moolenaar 94071d4279SBram Moolenaar" AMPL 95071d4279SBram Moolenaarau BufNewFile,BufRead *.run setf ampl 96071d4279SBram Moolenaar 97071d4279SBram Moolenaar" Ant 98071d4279SBram Moolenaarau BufNewFile,BufRead build.xml setf ant 99071d4279SBram Moolenaar 100438f67a0SBram Moolenaar" Arduino 101438f67a0SBram Moolenaarau BufNewFile,BufRead *.ino,*.pde setf arduino 102438f67a0SBram Moolenaar 103071d4279SBram Moolenaar" Apache config file 104adc2182cSBram Moolenaarau BufNewFile,BufRead .htaccess,*/etc/httpd/*.conf setf apache 105314dd79cSBram Moolenaarau BufNewFile,BufRead */etc/apache2/sites-*/*.com setf apache 106071d4279SBram Moolenaar 107071d4279SBram Moolenaar" XA65 MOS6510 cross assembler 108071d4279SBram Moolenaarau BufNewFile,BufRead *.a65 setf a65 109071d4279SBram Moolenaar 1105c73622aSBram Moolenaar" Applescript 1115c73622aSBram Moolenaarau BufNewFile,BufRead *.scpt setf applescript 1125c73622aSBram Moolenaar 113071d4279SBram Moolenaar" Applix ELF 114071d4279SBram Moolenaarau BufNewFile,BufRead *.am 115071d4279SBram Moolenaar \ if expand("<afile>") !~? 'Makefile.am\>' | setf elf | endif 116071d4279SBram Moolenaar 117c0197e28SBram Moolenaar" ALSA configuration 1188e5af3e5SBram Moolenaarau BufNewFile,BufRead .asoundrc,*/usr/share/alsa/alsa.conf,*/etc/asound.conf setf alsaconf 119c0197e28SBram Moolenaar 120071d4279SBram Moolenaar" Arc Macro Language 121071d4279SBram Moolenaarau BufNewFile,BufRead *.aml setf aml 122071d4279SBram Moolenaar 1230c5fa7d7SBram Moolenaar" APT config file 1240c5fa7d7SBram Moolenaarau BufNewFile,BufRead apt.conf setf aptconf 1250c5fa7d7SBram Moolenaarau BufNewFile,BufRead */.aptitude/config setf aptconf 1260c5fa7d7SBram Moolenaarau BufNewFile,BufRead */etc/apt/apt.conf.d/{[-_[:alnum:]]\+,[-_.[:alnum:]]\+.conf} setf aptconf 1270c5fa7d7SBram Moolenaar 128071d4279SBram Moolenaar" Arch Inventory file 129071d4279SBram Moolenaarau BufNewFile,BufRead .arch-inventory,=tagging-method setf arch 130071d4279SBram Moolenaar 131071d4279SBram Moolenaar" ART*Enterprise (formerly ART-IM) 132071d4279SBram Moolenaarau BufNewFile,BufRead *.art setf art 133071d4279SBram Moolenaar 134ac7bd638SBram Moolenaar" AsciiDoc 135ca63501fSBram Moolenaarau BufNewFile,BufRead *.asciidoc,*.adoc setf asciidoc 136ac7bd638SBram Moolenaar 137071d4279SBram Moolenaar" ASN.1 138071d4279SBram Moolenaarau BufNewFile,BufRead *.asn,*.asn1 setf asn 139071d4279SBram Moolenaar 140071d4279SBram Moolenaar" Active Server Pages (with Visual Basic Script) 141071d4279SBram Moolenaarau BufNewFile,BufRead *.asa 142071d4279SBram Moolenaar \ if exists("g:filetype_asa") | 143071d4279SBram Moolenaar \ exe "setf " . g:filetype_asa | 144071d4279SBram Moolenaar \ else | 145071d4279SBram Moolenaar \ setf aspvbs | 146071d4279SBram Moolenaar \ endif 147071d4279SBram Moolenaar 148071d4279SBram Moolenaar" Active Server Pages (with Perl or Visual Basic Script) 149071d4279SBram Moolenaarau BufNewFile,BufRead *.asp 150071d4279SBram Moolenaar \ if exists("g:filetype_asp") | 151071d4279SBram Moolenaar \ exe "setf " . g:filetype_asp | 152071d4279SBram Moolenaar \ elseif getline(1) . getline(2) . getline(3) =~? "perlscript" | 153071d4279SBram Moolenaar \ setf aspperl | 154071d4279SBram Moolenaar \ else | 155071d4279SBram Moolenaar \ setf aspvbs | 156071d4279SBram Moolenaar \ endif 157071d4279SBram Moolenaar 158071d4279SBram Moolenaar" Grub (must be before catch *.lst) 1598e5af3e5SBram Moolenaarau BufNewFile,BufRead */boot/grub/menu.lst,*/boot/grub/grub.conf,*/etc/grub.conf setf grub 160071d4279SBram Moolenaar 161071d4279SBram Moolenaar" Assembly (all kinds) 162071d4279SBram Moolenaar" *.lst is not pure assembly, it has two extra columns (address, byte codes) 163d09a206eSBram Moolenaarau BufNewFile,BufRead *.asm,*.[sS],*.[aA],*.mac,*.lst call dist#ft#FTasm() 164071d4279SBram Moolenaar 165071d4279SBram Moolenaar" Macro (VAX) 166071d4279SBram Moolenaarau BufNewFile,BufRead *.mar setf vmasm 167071d4279SBram Moolenaar 168071d4279SBram Moolenaar" Atlas 169071d4279SBram Moolenaarau BufNewFile,BufRead *.atl,*.as setf atlas 170071d4279SBram Moolenaar 17174b99f6aSBram Moolenaar" Atom is based on XML 17274b99f6aSBram Moolenaarau BufNewFile,BufRead *.atom setf xml 17374b99f6aSBram Moolenaar 174c81e5e79SBram Moolenaar" Autoit v3 175c81e5e79SBram Moolenaarau BufNewFile,BufRead *.au3 setf autoit 176c81e5e79SBram Moolenaar 17734e0bfaaSBram Moolenaar" Autohotkey 17834e0bfaaSBram Moolenaarau BufNewFile,BufRead *.ahk setf autohotkey 17934e0bfaaSBram Moolenaar 180071d4279SBram Moolenaar" Automake 181899dddf8SBram Moolenaarau BufNewFile,BufRead [mM]akefile.am,GNUmakefile.am setf automake 182071d4279SBram Moolenaar 18342eeac35SBram Moolenaar" Autotest .at files are actually m4 18442eeac35SBram Moolenaarau BufNewFile,BufRead *.at setf m4 18542eeac35SBram Moolenaar 186071d4279SBram Moolenaar" Avenue 187071d4279SBram Moolenaarau BufNewFile,BufRead *.ave setf ave 188071d4279SBram Moolenaar 189071d4279SBram Moolenaar" Awk 1909a5c553fSBram Moolenaarau BufNewFile,BufRead *.awk,*.gawk setf awk 191071d4279SBram Moolenaar 192071d4279SBram Moolenaar" B 193071d4279SBram Moolenaarau BufNewFile,BufRead *.mch,*.ref,*.imp setf b 194071d4279SBram Moolenaar 195071d4279SBram Moolenaar" BASIC or Visual Basic 196d09a206eSBram Moolenaarau BufNewFile,BufRead *.bas call dist#ft#FTVB("basic") 197071d4279SBram Moolenaar 19853bfca22SBram Moolenaar" Visual Basic Script (close to Visual Basic) or Visual Basic .NET 19953bfca22SBram Moolenaarau BufNewFile,BufRead *.vb,*.vbs,*.dsm,*.ctl setf vb 200071d4279SBram Moolenaar 201c81e5e79SBram Moolenaar" IBasic file (similar to QBasic) 202c81e5e79SBram Moolenaarau BufNewFile,BufRead *.iba,*.ibi setf ibasic 203c81e5e79SBram Moolenaar 204c81e5e79SBram Moolenaar" FreeBasic file (similar to QBasic) 205c81e5e79SBram Moolenaarau BufNewFile,BufRead *.fb,*.bi setf freebasic 206c81e5e79SBram Moolenaar 207071d4279SBram Moolenaar" Batch file for MSDOS. 2088299df96SBram Moolenaarau BufNewFile,BufRead *.bat,*.sys setf dosbatch 209071d4279SBram Moolenaar" *.cmd is close to a Batch file, but on OS/2 Rexx files also use *.cmd. 210071d4279SBram Moolenaarau BufNewFile,BufRead *.cmd 211071d4279SBram Moolenaar \ if getline(1) =~ '^/\*' | setf rexx | else | setf dosbatch | endif 212071d4279SBram Moolenaar 213071d4279SBram Moolenaar" Batch file for 4DOS 214d09a206eSBram Moolenaarau BufNewFile,BufRead *.btm call dist#ft#FTbtm() 215071d4279SBram Moolenaar 216071d4279SBram Moolenaar" BC calculator 217071d4279SBram Moolenaarau BufNewFile,BufRead *.bc setf bc 218071d4279SBram Moolenaar 219071d4279SBram Moolenaar" BDF font 220071d4279SBram Moolenaarau BufNewFile,BufRead *.bdf setf bdf 221071d4279SBram Moolenaar 2229bbd883bSBram Moolenaar" Beancount 2239bbd883bSBram Moolenaarau BufNewFile,BufRead *.beancount setf beancount 2249bbd883bSBram Moolenaar 225071d4279SBram Moolenaar" BibTeX bibliography database file 226071d4279SBram Moolenaarau BufNewFile,BufRead *.bib setf bib 227071d4279SBram Moolenaar 228437df8f4SBram Moolenaar" BibTeX Bibliography Style 229437df8f4SBram Moolenaarau BufNewFile,BufRead *.bst setf bst 230437df8f4SBram Moolenaar 231071d4279SBram Moolenaar" BIND configuration 232e0720cbfSBram Moolenaar" sudoedit uses namedXXXX.conf 23301164a65SBram Moolenaarau BufNewFile,BufRead named*.conf,rndc*.conf,rndc*.key setf named 234071d4279SBram Moolenaar 235071d4279SBram Moolenaar" BIND zone 236071d4279SBram Moolenaarau BufNewFile,BufRead named.root setf bindzone 237d09a206eSBram Moolenaarau BufNewFile,BufRead *.db call dist#ft#BindzoneCheck('') 238071d4279SBram Moolenaar 239071d4279SBram Moolenaar" Blank 240071d4279SBram Moolenaarau BufNewFile,BufRead *.bl setf blank 241071d4279SBram Moolenaar 2420ab2c5adSBram Moolenaar" Blkid cache file 243adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/blkid.tab,*/etc/blkid.tab.old setf xml 2440ab2c5adSBram Moolenaar 24540d235e7SBram Moolenaar" BSDL 2460fc1288aSBram Moolenaarau BufNewFile,BufRead *bsd,*.bsdl setf bsdl 24740d235e7SBram Moolenaar 24860cce2fbSBram Moolenaar" Bazel (http://bazel.io) 2494488f5a5SBram Moolenaarautocmd BufRead,BufNewFile *.bzl,*.bazel,WORKSPACE setf bzl 25068563937SBram Moolenaarif has("fname_case") 25139170e2dSBram Moolenaar " There is another check for BUILD further below. 2524488f5a5SBram Moolenaar autocmd BufRead,BufNewFile *.BUILD,BUILD setf bzl 25368563937SBram Moolenaarendif 25460cce2fbSBram Moolenaar 255071d4279SBram Moolenaar" C or lpc 256d09a206eSBram Moolenaarau BufNewFile,BufRead *.c call dist#ft#FTlpc() 25740962ec9SBram Moolenaarau BufNewFile,BufRead *.lpc,*.ulpc setf lpc 258071d4279SBram Moolenaar 259071d4279SBram Moolenaar" Calendar 2604317d9b4SBram Moolenaarau BufNewFile,BufRead calendar setf calendar 261071d4279SBram Moolenaar 262071d4279SBram Moolenaar" C# 263071d4279SBram Moolenaarau BufNewFile,BufRead *.cs setf cs 264071d4279SBram Moolenaar 26534700a6aSBram Moolenaar" CSDL 26634700a6aSBram Moolenaarau BufNewFile,BufRead *.csdl setf csdl 26734700a6aSBram Moolenaar 26800a927d6SBram Moolenaar" Cabal 26900a927d6SBram Moolenaarau BufNewFile,BufRead *.cabal setf cabal 27000a927d6SBram Moolenaar 27134e0bfaaSBram Moolenaar" Cdrdao TOC 27234e0bfaaSBram Moolenaarau BufNewFile,BufRead *.toc setf cdrtoc 27334e0bfaaSBram Moolenaar 274aba8857aSBram Moolenaar" Cdrdao config 2758e5af3e5SBram Moolenaarau BufNewFile,BufRead */etc/cdrdao.conf,*/etc/defaults/cdrdao,*/etc/default/cdrdao,.cdrdao setf cdrdaoconf 276aba8857aSBram Moolenaar 277a5fac54aSBram Moolenaar" Cfengine 278a5fac54aSBram Moolenaarau BufNewFile,BufRead cfengine.conf setf cfengine 279a5fac54aSBram Moolenaar 28000a927d6SBram Moolenaar" ChaiScript 28100a927d6SBram Moolenaarau BufRead,BufNewFile *.chai setf chaiscript 28200a927d6SBram Moolenaar 283071d4279SBram Moolenaar" Comshare Dimension Definition Language 284071d4279SBram Moolenaarau BufNewFile,BufRead *.cdl setf cdl 285071d4279SBram Moolenaar 286c81e5e79SBram Moolenaar" Conary Recipe 287c81e5e79SBram Moolenaarau BufNewFile,BufRead *.recipe setf conaryrecipe 288c81e5e79SBram Moolenaar 289071d4279SBram Moolenaar" Controllable Regex Mutilator 290071d4279SBram Moolenaarau BufNewFile,BufRead *.crm setf crm 291071d4279SBram Moolenaar 292071d4279SBram Moolenaar" Cyn++ 293071d4279SBram Moolenaarau BufNewFile,BufRead *.cyn setf cynpp 294071d4279SBram Moolenaar 295071d4279SBram Moolenaar" Cynlib 296071d4279SBram Moolenaar" .cc and .cpp files can be C++ or Cynlib. 297071d4279SBram Moolenaarau BufNewFile,BufRead *.cc 298071d4279SBram Moolenaar \ if exists("cynlib_syntax_for_cc")|setf cynlib|else|setf cpp|endif 299071d4279SBram Moolenaarau BufNewFile,BufRead *.cpp 300071d4279SBram Moolenaar \ if exists("cynlib_syntax_for_cpp")|setf cynlib|else|setf cpp|endif 301071d4279SBram Moolenaar 302071d4279SBram Moolenaar" C++ 3035c73622aSBram Moolenaarau BufNewFile,BufRead *.cxx,*.c++,*.hh,*.hxx,*.hpp,*.ipp,*.moc,*.tcc,*.inl setf cpp 304071d4279SBram Moolenaarif has("fname_case") 3055c73622aSBram Moolenaar au BufNewFile,BufRead *.C,*.H setf cpp 306071d4279SBram Moolenaarendif 307071d4279SBram Moolenaar 308aba8857aSBram Moolenaar" .h files can be C, Ch C++, ObjC or ObjC++. 309aba8857aSBram Moolenaar" Set c_syntax_for_h if you want C, ch_syntax_for_h if you want Ch. ObjC is 310aba8857aSBram Moolenaar" detected automatically. 311d09a206eSBram Moolenaarau BufNewFile,BufRead *.h call dist#ft#FTheader() 312071d4279SBram Moolenaar 313071d4279SBram Moolenaar" Ch (CHscript) 314071d4279SBram Moolenaarau BufNewFile,BufRead *.chf setf ch 315071d4279SBram Moolenaar 316071d4279SBram Moolenaar" TLH files are C++ headers generated by Visual C++'s #import from typelibs 317071d4279SBram Moolenaarau BufNewFile,BufRead *.tlh setf cpp 318071d4279SBram Moolenaar 319071d4279SBram Moolenaar" Cascading Style Sheets 320071d4279SBram Moolenaarau BufNewFile,BufRead *.css setf css 321071d4279SBram Moolenaar 322071d4279SBram Moolenaar" Century Term Command Scripts (*.cmd too) 323071d4279SBram Moolenaarau BufNewFile,BufRead *.con setf cterm 324071d4279SBram Moolenaar 325071d4279SBram Moolenaar" Changelog 3260022675aSBram Moolenaarau BufNewFile,BufRead changelog.Debian,changelog.dch,NEWS.Debian,NEWS.dch,*/debian/changelog 327899dddf8SBram Moolenaar \ setf debchangelog 328899dddf8SBram Moolenaar 329899dddf8SBram Moolenaarau BufNewFile,BufRead [cC]hange[lL]og 330899dddf8SBram Moolenaar \ if getline(1) =~ '; urgency=' 331899dddf8SBram Moolenaar \| setf debchangelog 332899dddf8SBram Moolenaar \| else 333899dddf8SBram Moolenaar \| setf changelog 334899dddf8SBram Moolenaar \| endif 335899dddf8SBram Moolenaar 336899dddf8SBram Moolenaarau BufNewFile,BufRead NEWS 337899dddf8SBram Moolenaar \ if getline(1) =~ '; urgency=' 338899dddf8SBram Moolenaar \| setf debchangelog 339899dddf8SBram Moolenaar \| endif 340071d4279SBram Moolenaar 341071d4279SBram Moolenaar" CHILL 342071d4279SBram Moolenaarau BufNewFile,BufRead *..ch setf chill 343071d4279SBram Moolenaar 344071d4279SBram Moolenaar" Changes for WEB and CWEB or CHILL 345d09a206eSBram Moolenaarau BufNewFile,BufRead *.ch call dist#ft#FTchange() 346071d4279SBram Moolenaar 34757657d85SBram Moolenaar" ChordPro 34857657d85SBram Moolenaarau BufNewFile,BufRead *.chopro,*.crd,*.cho,*.crdpro,*.chordpro setf chordpro 34957657d85SBram Moolenaar 350071d4279SBram Moolenaar" Clean 351071d4279SBram Moolenaarau BufNewFile,BufRead *.dcl,*.icl setf clean 352071d4279SBram Moolenaar 353071d4279SBram Moolenaar" Clever 354071d4279SBram Moolenaarau BufNewFile,BufRead *.eni setf cl 355071d4279SBram Moolenaar 356071d4279SBram Moolenaar" Clever or dtd 357d09a206eSBram Moolenaarau BufNewFile,BufRead *.ent call dist#ft#FTent() 358071d4279SBram Moolenaar 3594770d09aSBram Moolenaar" Clipper (or FoxPro; could also be eviews) 360071d4279SBram Moolenaarau BufNewFile,BufRead *.prg 361071d4279SBram Moolenaar \ if exists("g:filetype_prg") | 362071d4279SBram Moolenaar \ exe "setf " . g:filetype_prg | 363071d4279SBram Moolenaar \ else | 364071d4279SBram Moolenaar \ setf clipper | 365071d4279SBram Moolenaar \ endif 366071d4279SBram Moolenaar 367fa13eef3SBram Moolenaar" Clojure 368f2571c61SBram Moolenaarau BufNewFile,BufRead *.clj,*.cljs,*.cljx,*.cljc setf clojure 369fa13eef3SBram Moolenaar 370c1e37901SBram Moolenaar" Cmake 371c1e37901SBram Moolenaarau BufNewFile,BufRead CMakeLists.txt,*.cmake,*.cmake.in setf cmake 372c1e37901SBram Moolenaar 373c81e5e79SBram Moolenaar" Cmusrc 3748e5af3e5SBram Moolenaarau BufNewFile,BufRead */.cmus/{autosave,rc,command-history,*.theme} setf cmusrc 375c81e5e79SBram Moolenaarau BufNewFile,BufRead */cmus/{rc,*.theme} setf cmusrc 376c81e5e79SBram Moolenaar 377071d4279SBram Moolenaar" Cobol 378899dddf8SBram Moolenaarau BufNewFile,BufRead *.cbl,*.cob,*.lib setf cobol 379899dddf8SBram Moolenaar" cobol or zope form controller python script? (heuristic) 380899dddf8SBram Moolenaarau BufNewFile,BufRead *.cpy 381899dddf8SBram Moolenaar \ if getline(1) =~ '^##' | 382899dddf8SBram Moolenaar \ setf python | 383899dddf8SBram Moolenaar \ else | 384899dddf8SBram Moolenaar \ setf cobol | 385899dddf8SBram Moolenaar \ endif 386071d4279SBram Moolenaar 387aba8857aSBram Moolenaar" Coco/R 388aba8857aSBram Moolenaarau BufNewFile,BufRead *.atg setf coco 389aba8857aSBram Moolenaar 390071d4279SBram Moolenaar" Cold Fusion 391071d4279SBram Moolenaarau BufNewFile,BufRead *.cfm,*.cfi,*.cfc setf cf 392071d4279SBram Moolenaar 393071d4279SBram Moolenaar" Configure scripts 394071d4279SBram Moolenaarau BufNewFile,BufRead configure.in,configure.ac setf config 395071d4279SBram Moolenaar 396f3caeb63SAustin Gatlin" CUDA Compute Unified Device Architecture 39740962ec9SBram Moolenaarau BufNewFile,BufRead *.cu,*.cuh setf cuda 398aba8857aSBram Moolenaar 399ab067a21SBram Moolenaar" Dockerfile; Podman uses the same syntax with name Containerfile 4001ff14ba2SBram Moolenaarau BufNewFile,BufRead Containerfile,Dockerfile,*.Dockerfile setf dockerfile 40134401ccaSBram Moolenaar 402071d4279SBram Moolenaar" WildPackets EtherPeek Decoder 403071d4279SBram Moolenaarau BufNewFile,BufRead *.dcd setf dcd 404071d4279SBram Moolenaar 405071d4279SBram Moolenaar" Enlightenment configuration files 406071d4279SBram Moolenaarau BufNewFile,BufRead *enlightenment/*.cfg setf c 407071d4279SBram Moolenaar 408071d4279SBram Moolenaar" Eterm 409071d4279SBram Moolenaarau BufNewFile,BufRead *Eterm/*.cfg setf eterm 410071d4279SBram Moolenaar 411f3caeb63SAustin Gatlin" Elixir or Euphoria 412f3caeb63SAustin Gatlinau BufNewFile,BufRead *.ex call dist#ft#ExCheck() 413f3caeb63SAustin Gatlin 414f3caeb63SAustin Gatlin" Elixir 415f3caeb63SAustin Gatlinau BufRead,BufNewFile mix.lock,*.exs setf elixir 416f3caeb63SAustin Gatlinau BufRead,BufNewFile *.eex,*.leex setf eelixir 417f3caeb63SAustin Gatlin 418251835e1SBram Moolenaar" Euphoria 3 or 4 419f3caeb63SAustin Gatlinau BufNewFile,BufRead *.eu,*.ew,*.exu,*.exw call dist#ft#EuphoriaCheck() 420251835e1SBram Moolenaarif has("fname_case") 421d09a206eSBram Moolenaar au BufNewFile,BufRead *.EU,*.EW,*.EX,*.EXU,*.EXW call dist#ft#EuphoriaCheck() 422251835e1SBram Moolenaarendif 423251835e1SBram Moolenaar 424071d4279SBram Moolenaar" Lynx config files 425071d4279SBram Moolenaarau BufNewFile,BufRead lynx.cfg setf lynx 426071d4279SBram Moolenaar 4276bc00699SBram Moolenaar" Modula-3 configuration language (must be before *.cfg and *makefile) 4286bc00699SBram Moolenaarau BufNewFile,BufRead *.quake,cm3.cfg setf m3quake 4296bc00699SBram Moolenaarau BufNewFile,BufRead m3makefile,m3overrides setf m3build 4306bc00699SBram Moolenaar 431071d4279SBram Moolenaar" Quake 432071d4279SBram Moolenaarau BufNewFile,BufRead *baseq[2-3]/*.cfg,*id1/*.cfg setf quake 433071d4279SBram Moolenaarau BufNewFile,BufRead *quake[1-3]/*.cfg setf quake 434071d4279SBram Moolenaar 435071d4279SBram Moolenaar" Quake C 436071d4279SBram Moolenaarau BufNewFile,BufRead *.qc setf c 437071d4279SBram Moolenaar 438071d4279SBram Moolenaar" Configure files 439071d4279SBram Moolenaarau BufNewFile,BufRead *.cfg setf cfg 440071d4279SBram Moolenaar 4415e3dae8bSBram Moolenaar" Cucumber 4425e3dae8bSBram Moolenaarau BufNewFile,BufRead *.feature setf cucumber 4435e3dae8bSBram Moolenaar 444071d4279SBram Moolenaar" Communicating Sequential Processes 445071d4279SBram Moolenaarau BufNewFile,BufRead *.csp,*.fdr setf csp 446071d4279SBram Moolenaar 447071d4279SBram Moolenaar" CUPL logic description and simulation 448071d4279SBram Moolenaarau BufNewFile,BufRead *.pld setf cupl 449071d4279SBram Moolenaarau BufNewFile,BufRead *.si setf cuplsim 450071d4279SBram Moolenaar 451afbdb905SBram Moolenaar" Dart 452afbdb905SBram Moolenaarau BufRead,BufNewfile *.dart,*.drt setf dart 453afbdb905SBram Moolenaar 454071d4279SBram Moolenaar" Debian Control 455071d4279SBram Moolenaarau BufNewFile,BufRead */debian/control setf debcontrol 456aba8857aSBram Moolenaarau BufNewFile,BufRead control 457aba8857aSBram Moolenaar \ if getline(1) =~ '^Source:' 458aba8857aSBram Moolenaar \| setf debcontrol 459aba8857aSBram Moolenaar \| endif 460071d4279SBram Moolenaar 46185eee130SBram Moolenaar" Debian Copyright 46285eee130SBram Moolenaarau BufNewFile,BufRead */debian/copyright setf debcopyright 46385eee130SBram Moolenaarau BufNewFile,BufRead copyright 46485eee130SBram Moolenaar \ if getline(1) =~ '^Format:' 46585eee130SBram Moolenaar \| setf debcopyright 46685eee130SBram Moolenaar \| endif 46785eee130SBram Moolenaar 468d2cec5b0SBram Moolenaar" Debian Sources.list 469adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/apt/sources.list setf debsources 470adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/apt/sources.list.d/*.list setf debsources 471d2cec5b0SBram Moolenaar 472aba8857aSBram Moolenaar" Deny hosts 473aba8857aSBram Moolenaarau BufNewFile,BufRead denyhosts.conf setf denyhosts 474aba8857aSBram Moolenaar 4758e5af3e5SBram Moolenaar" dnsmasq(8) configuration files 47620f90cf9SBram Moolenaarau BufNewFile,BufRead */etc/dnsmasq.conf setf dnsmasq 4778e5af3e5SBram Moolenaar 478071d4279SBram Moolenaar" ROCKLinux package description 479071d4279SBram Moolenaarau BufNewFile,BufRead *.desc setf desc 480071d4279SBram Moolenaar 481aba8857aSBram Moolenaar" the D language or dtrace 482d09a206eSBram Moolenaarau BufNewFile,BufRead *.d call dist#ft#DtraceCheck() 483071d4279SBram Moolenaar 484071d4279SBram Moolenaar" Desktop files 485f1f0ff95SBram Moolenaarau BufNewFile,BufRead *.desktop,*.directory setf desktop 486071d4279SBram Moolenaar 4870dc065eeSBram Moolenaar" Dict config 4880dc065eeSBram Moolenaarau BufNewFile,BufRead dict.conf,.dictrc setf dictconf 4890dc065eeSBram Moolenaar 4900dc065eeSBram Moolenaar" Dictd config 491be01090eSBram Moolenaarau BufNewFile,BufRead dictd*.conf setf dictdconf 4920dc065eeSBram Moolenaar 493071d4279SBram Moolenaar" Diff files 49474675a66SBram Moolenaarau BufNewFile,BufRead *.diff,*.rej setf diff 49574675a66SBram Moolenaarau BufNewFile,BufRead *.patch 49674675a66SBram Moolenaar \ if getline(1) =~ '^From [0-9a-f]\{40\} Mon Sep 17 00:00:00 2001$' | 49774675a66SBram Moolenaar \ setf gitsendemail | 49874675a66SBram Moolenaar \ else | 49974675a66SBram Moolenaar \ setf diff | 50074675a66SBram Moolenaar \ endif 501071d4279SBram Moolenaar 502071d4279SBram Moolenaar" Dircolors 503adc2182cSBram Moolenaarau BufNewFile,BufRead .dir_colors,.dircolors,*/etc/DIR_COLORS setf dircolors 504071d4279SBram Moolenaar 505071d4279SBram Moolenaar" Diva (with Skill) or InstallShield 506071d4279SBram Moolenaarau BufNewFile,BufRead *.rul 507071d4279SBram Moolenaar \ if getline(1).getline(2).getline(3).getline(4).getline(5).getline(6) =~? 'InstallShield' | 508071d4279SBram Moolenaar \ setf ishd | 509071d4279SBram Moolenaar \ else | 510071d4279SBram Moolenaar \ setf diva | 511071d4279SBram Moolenaar \ endif 512071d4279SBram Moolenaar 513071d4279SBram Moolenaar" DCL (Digital Command Language - vms) or DNS zone file 514d09a206eSBram Moolenaarau BufNewFile,BufRead *.com call dist#ft#BindzoneCheck('dcl') 515071d4279SBram Moolenaar 516071d4279SBram Moolenaar" DOT 517f8ddb257SBram Moolenaarau BufNewFile,BufRead *.dot,*.gv setf dot 518071d4279SBram Moolenaar 519beef4eedSBram Moolenaar" Dune 520beef4eedSBram Moolenaarau BufNewFile,BufRead jbuild,dune,dune-project,dune-workspace setf dune 521beef4eedSBram Moolenaar 522071d4279SBram Moolenaar" Dylan - lid files 523071d4279SBram Moolenaarau BufNewFile,BufRead *.lid setf dylanlid 524071d4279SBram Moolenaar 525071d4279SBram Moolenaar" Dylan - intr files (melange) 526071d4279SBram Moolenaarau BufNewFile,BufRead *.intr setf dylanintr 527071d4279SBram Moolenaar 528071d4279SBram Moolenaar" Dylan 529071d4279SBram Moolenaarau BufNewFile,BufRead *.dylan setf dylan 530071d4279SBram Moolenaar 531071d4279SBram Moolenaar" Microsoft Module Definition 532071d4279SBram Moolenaarau BufNewFile,BufRead *.def setf def 533071d4279SBram Moolenaar 534071d4279SBram Moolenaar" Dracula 535071d4279SBram Moolenaarau BufNewFile,BufRead *.drac,*.drc,*lvs,*lpe setf dracula 536071d4279SBram Moolenaar 53790df5507SBram Moolenaar" Datascript 53890df5507SBram Moolenaarau BufNewFile,BufRead *.ds setf datascript 53990df5507SBram Moolenaar 540dea56111SBastian Venthur" dsl: DSSSL or Structurizr 541dea56111SBastian Venthurau BufNewFile,BufRead *.dsl 542dea56111SBastian Venthur \ if getline(1) =~ '^\s*<\!' | 543dea56111SBastian Venthur \ setf dsl | 544dea56111SBastian Venthur \ else | 545dea56111SBastian Venthur \ setf structurizr | 546dea56111SBastian Venthur \ endif 547071d4279SBram Moolenaar 548071d4279SBram Moolenaar" DTD (Document Type Definition for XML) 549071d4279SBram Moolenaarau BufNewFile,BufRead *.dtd setf dtd 550071d4279SBram Moolenaar 55197cc2384SBram Moolenaar" DTS/DSTI (device tree files) 55297cc2384SBram Moolenaarau BufNewFile,BufRead *.dts,*.dtsi setf dts 55397cc2384SBram Moolenaar 554369b6f57SBram Moolenaar" EDIF (*.edf,*.edif,*.edn,*.edo) or edn 555369b6f57SBram Moolenaarau BufNewFile,BufRead *.ed\(f\|if\|o\) setf edif 556369b6f57SBram Moolenaarau BufNewFile,BufRead *.edn 557369b6f57SBram Moolenaar \ if getline(1) =~ '^\s*(\s*edif\>' | 558369b6f57SBram Moolenaar \ setf edif | 559369b6f57SBram Moolenaar \ else | 560369b6f57SBram Moolenaar \ setf clojure | 561369b6f57SBram Moolenaar \ endif 562071d4279SBram Moolenaar 563d0796909SBram Moolenaar" EditorConfig (close enough to dosini) 564d0796909SBram Moolenaarau BufNewFile,BufRead .editorconfig setf dosini 565d0796909SBram Moolenaar 566071d4279SBram Moolenaar" Embedix Component Description 567071d4279SBram Moolenaarau BufNewFile,BufRead *.ecd setf ecd 568071d4279SBram Moolenaar 5690858917eSBram Moolenaar" Eiffel or Specman or Euphoria 570d09a206eSBram Moolenaarau BufNewFile,BufRead *.e,*.E call dist#ft#FTe() 571071d4279SBram Moolenaar 572071d4279SBram Moolenaar" Elinks configuration 5735f36d5fbSBram Moolenaarau BufNewFile,BufRead elinks.conf setf elinks 574071d4279SBram Moolenaar 575aba8857aSBram Moolenaar" ERicsson LANGuage; Yaws is erlang too 576c236c16dSBram Moolenaarau BufNewFile,BufRead *.erl,*.hrl,*.yaws setf erlang 577071d4279SBram Moolenaar 5780016fd2eSBram Moolenaar" Elm 5790016fd2eSBram Moolenaarau BufNewFile,BufRead *.elm setf elm 5800016fd2eSBram Moolenaar 581071d4279SBram Moolenaar" Elm Filter Rules file 582071d4279SBram Moolenaarau BufNewFile,BufRead filter-rules setf elmfilt 583071d4279SBram Moolenaar 58426a60b45SBram Moolenaar" ESMTP rc file 58526a60b45SBram Moolenaarau BufNewFile,BufRead *esmtprc setf esmtprc 58626a60b45SBram Moolenaar 587071d4279SBram Moolenaar" ESQL-C 588071d4279SBram Moolenaarau BufNewFile,BufRead *.ec,*.EC setf esqlc 589071d4279SBram Moolenaar 590c930a3ccSBram Moolenaar" Esterel 591c930a3ccSBram Moolenaarau BufNewFile,BufRead *.strl setf esterel 592c930a3ccSBram Moolenaar 593071d4279SBram Moolenaar" Essbase script 594071d4279SBram Moolenaarau BufNewFile,BufRead *.csc setf csc 595071d4279SBram Moolenaar 596071d4279SBram Moolenaar" Exim 597071d4279SBram Moolenaarau BufNewFile,BufRead exim.conf setf exim 598071d4279SBram Moolenaar 599071d4279SBram Moolenaar" Expect 600071d4279SBram Moolenaarau BufNewFile,BufRead *.exp setf expect 601071d4279SBram Moolenaar 602071d4279SBram Moolenaar" Exports 603071d4279SBram Moolenaarau BufNewFile,BufRead exports setf exports 604071d4279SBram Moolenaar 6054a74803eSBram Moolenaar" Falcon 6064a74803eSBram Moolenaarau BufNewFile,BufRead *.fal setf falcon 6074a74803eSBram Moolenaar 6088cd213c0SBram Moolenaar" Fantom 6098cd213c0SBram Moolenaarau BufNewFile,BufRead *.fan,*.fwt setf fan 6108cd213c0SBram Moolenaar 611520470a9SBram Moolenaar" Factor 612520470a9SBram Moolenaarau BufNewFile,BufRead *.factor setf factor 613520470a9SBram Moolenaar 614402115f1SBram Moolenaar" Fennel 615402115f1SBram Moolenaarautocmd BufRead,BufNewFile *.fnl setf fennel 616402115f1SBram Moolenaar 617071d4279SBram Moolenaar" Fetchmail RC file 618071d4279SBram Moolenaarau BufNewFile,BufRead .fetchmailrc setf fetchmail 619071d4279SBram Moolenaar 620b1b163efSBram Moolenaar" Fish shell 621b1b163efSBram Moolenaarau BufNewFile,BufRead *.fish setf fish 622b1b163efSBram Moolenaar 6235c73622aSBram Moolenaar" FlexWiki - disabled, because it has side effects when a .wiki file 6245c73622aSBram Moolenaar" is not actually FlexWiki 6255c73622aSBram Moolenaar"au BufNewFile,BufRead *.wiki setf flexwiki 626437df8f4SBram Moolenaar 627071d4279SBram Moolenaar" Focus Executable 628071d4279SBram Moolenaarau BufNewFile,BufRead *.fex,*.focexec setf focexec 629071d4279SBram Moolenaar 630071d4279SBram Moolenaar" Focus Master file (but not for auto.master) 631071d4279SBram Moolenaarau BufNewFile,BufRead auto.master setf conf 632071d4279SBram Moolenaarau BufNewFile,BufRead *.mas,*.master setf master 633071d4279SBram Moolenaar 634071d4279SBram Moolenaar" Forth 635d473c8c1SBram Moolenaarau BufNewFile,BufRead *.fs,*.ft,*.fth setf forth 636071d4279SBram Moolenaar 637aba8857aSBram Moolenaar" Reva Forth 638aba8857aSBram Moolenaarau BufNewFile,BufRead *.frt setf reva 639aba8857aSBram Moolenaar 640071d4279SBram Moolenaar" Fortran 641c81e5e79SBram Moolenaarif has("fname_case") 64224580384SBram Moolenaar au BufNewFile,BufRead *.F,*.FOR,*.FPP,*.FTN,*.F77,*.F90,*.F95,*.F03,*.F08 setf fortran 643c81e5e79SBram Moolenaarendif 64424580384SBram Moolenaarau BufNewFile,BufRead *.f,*.for,*.fortran,*.fpp,*.ftn,*.f77,*.f90,*.f95,*.f03,*.f08 setf fortran 645071d4279SBram Moolenaar 646e37d50a5SBram Moolenaar" Framescript 647e37d50a5SBram Moolenaarau BufNewFile,BufRead *.fsl setf framescript 648e37d50a5SBram Moolenaar 649071d4279SBram Moolenaar" FStab 650910f66f9SBram Moolenaarau BufNewFile,BufRead fstab,mtab setf fstab 651071d4279SBram Moolenaar 652071d4279SBram Moolenaar" GDB command files 653782b4bbcSBram Moolenaarau BufNewFile,BufRead .gdbinit,gdbinit setf gdb 654071d4279SBram Moolenaar 655071d4279SBram Moolenaar" GDMO 656071d4279SBram Moolenaarau BufNewFile,BufRead *.mo,*.gdmo setf gdmo 657071d4279SBram Moolenaar 658071d4279SBram Moolenaar" Gedcom 6595c73622aSBram Moolenaarau BufNewFile,BufRead *.ged,lltxxxxx.txt setf gedcom 660071d4279SBram Moolenaar 661fcde67c9SBram Moolenaar" Gemtext 662fcde67c9SBram Moolenaarau BufNewFile,BufRead *.gmi,*.gemini setf gemtext 663fcde67c9SBram Moolenaar 664b34f3374SBram Moolenaar" Gift (Moodle) 665b34f3374SBram Moolenaarautocmd BufRead,BufNewFile *.gift setf gift 666b34f3374SBram Moolenaar 667aba8857aSBram Moolenaar" Git 6687571d55fSBram Moolenaarau BufNewFile,BufRead COMMIT_EDITMSG,MERGE_MSG,TAG_EDITMSG setf gitcommit 669d474686aSBram Moolenaarau BufNewFile,BufRead *.git/config,.gitconfig,/etc/gitconfig setf gitconfig 670543b7ef7SBram Moolenaarau BufNewFile,BufRead */.config/git/config setf gitconfig 671d474686aSBram Moolenaarau BufNewFile,BufRead .gitmodules,*.git/modules/*/config setf gitconfig 67232efaf61SBram Moolenaarif !empty($XDG_CONFIG_HOME) 67332efaf61SBram Moolenaar au BufNewFile,BufRead $XDG_CONFIG_HOME/git/config setf gitconfig 67432efaf61SBram Moolenaarendif 6758e5af3e5SBram Moolenaarau BufNewFile,BufRead git-rebase-todo setf gitrebase 67674675a66SBram Moolenaarau BufRead,BufNewFile .gitsendemail.msg.?????? setf gitsendemail 6778e5af3e5SBram Moolenaarau BufNewFile,BufRead .msg.[0-9]* 678aba8857aSBram Moolenaar \ if getline(1) =~ '^From.*# This line is ignored.$' | 679aba8857aSBram Moolenaar \ setf gitsendemail | 680aba8857aSBram Moolenaar \ endif 6819d98fe9cSBram Moolenaarau BufNewFile,BufRead *.git/* 682aba8857aSBram Moolenaar \ if getline(1) =~ '^\x\{40\}\>\|^ref: ' | 683aba8857aSBram Moolenaar \ setf git | 684aba8857aSBram Moolenaar \ endif 685aba8857aSBram Moolenaar 686071d4279SBram Moolenaar" Gkrellmrc 687071d4279SBram Moolenaarau BufNewFile,BufRead gkrellmrc,gkrellmrc_? setf gkrellmrc 688071d4279SBram Moolenaar 689071d4279SBram Moolenaar" GP scripts (2.0 and onward) 69018144c84SBram Moolenaarau BufNewFile,BufRead *.gp,.gprc setf gp 691071d4279SBram Moolenaar 692071d4279SBram Moolenaar" GPG 693071d4279SBram Moolenaarau BufNewFile,BufRead */.gnupg/options setf gpg 694071d4279SBram Moolenaarau BufNewFile,BufRead */.gnupg/gpg.conf setf gpg 6959d98fe9cSBram Moolenaarau BufNewFile,BufRead */usr/*/gnupg/options.skel setf gpg 69650ba526fSBram Moolenaarif !empty($GNUPGHOME) 69750ba526fSBram Moolenaar au BufNewFile,BufRead $GNUPGHOME/options setf gpg 69850ba526fSBram Moolenaar au BufNewFile,BufRead $GNUPGHOME/gpg.conf setf gpg 69950ba526fSBram Moolenaarendif 7008e5af3e5SBram Moolenaar 7018e5af3e5SBram Moolenaar" gnash(1) configuration files 7028e5af3e5SBram Moolenaarau BufNewFile,BufRead gnashrc,.gnashrc,gnashpluginrc,.gnashpluginrc setf gnash 703071d4279SBram Moolenaar 7041514667aSBram Moolenaar" Gitolite 7051514667aSBram Moolenaarau BufNewFile,BufRead gitolite.conf setf gitolite 7061514667aSBram Moolenaarau BufNewFile,BufRead {,.}gitolite.rc,example.gitolite.rc setf perl 7071514667aSBram Moolenaar 708071d4279SBram Moolenaar" Gnuplot scripts 709071d4279SBram Moolenaarau BufNewFile,BufRead *.gpi setf gnuplot 710071d4279SBram Moolenaar 711fb539273SBram Moolenaar" Go (Google) 712fb539273SBram Moolenaarau BufNewFile,BufRead *.go setf go 71328b6a3beSAman Vermaau BufNewFile,BufRead Gopkg.lock setf toml 714fb539273SBram Moolenaar 715071d4279SBram Moolenaar" GrADS scripts 716071d4279SBram Moolenaarau BufNewFile,BufRead *.gs setf grads 717071d4279SBram Moolenaar 7184770d09aSBram Moolenaar" Gretl 7194770d09aSBram Moolenaarau BufNewFile,BufRead *.gretl setf gretl 7204770d09aSBram Moolenaar 721071d4279SBram Moolenaar" Groovy 722ca63501fSBram Moolenaarau BufNewFile,BufRead *.gradle,*.groovy setf groovy 723071d4279SBram Moolenaar 724071d4279SBram Moolenaar" GNU Server Pages 725071d4279SBram Moolenaarau BufNewFile,BufRead *.gsp setf gsp 726071d4279SBram Moolenaar 7270dc065eeSBram Moolenaar" Group file 728adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/group,*/etc/group-,*/etc/group.edit,*/etc/gshadow,*/etc/gshadow-,*/etc/gshadow.edit,*/var/backups/group.bak,*/var/backups/gshadow.bak setf group 7290dc065eeSBram Moolenaar 730071d4279SBram Moolenaar" GTK RC 731071d4279SBram Moolenaarau BufNewFile,BufRead .gtkrc,gtkrc setf gtkrc 732071d4279SBram Moolenaar 733c236c16dSBram Moolenaar" Haml 734c236c16dSBram Moolenaarau BufNewFile,BufRead *.haml setf haml 735c236c16dSBram Moolenaar 736c81e5e79SBram Moolenaar" Hamster Classic | Playground files 737dcbab75dSBram Moolenaarau BufNewFile,BufRead *.hsm setf hamster 738c81e5e79SBram Moolenaar 739071d4279SBram Moolenaar" Haskell 740f5409dbfSMarcin Szamotulskiau BufNewFile,BufRead *.hs,*.hsc,*.hs-boot,*.hsig setf haskell 741071d4279SBram Moolenaarau BufNewFile,BufRead *.lhs setf lhaskell 742071d4279SBram Moolenaarau BufNewFile,BufRead *.chs setf chaskell 743dcbab75dSBram Moolenaarau BufNewFile,BufRead cabal.project setf cabalproject 744dcbab75dSBram Moolenaarau BufNewFile,BufRead $HOME/.cabal/config setf cabalconfig 745dcbab75dSBram Moolenaarau BufNewFile,BufRead cabal.config setf cabalconfig 746071d4279SBram Moolenaar 747aba8857aSBram Moolenaar" Haste 748aba8857aSBram Moolenaarau BufNewFile,BufRead *.ht setf haste 749c236c16dSBram Moolenaarau BufNewFile,BufRead *.htpp setf hastepreproc 750aba8857aSBram Moolenaar 751071d4279SBram Moolenaar" Hercules 752b4ada79aSBram Moolenaarau BufNewFile,BufRead *.vc,*.ev,*.sum,*.errsum setf hercules 753071d4279SBram Moolenaar 754071d4279SBram Moolenaar" HEX (Intel) 755071d4279SBram Moolenaarau BufNewFile,BufRead *.hex,*.h32 setf hex 756071d4279SBram Moolenaar 75756c860c3SBram Moolenaar" Hollywood 75856c860c3SBram Moolenaarau BufRead,BufNewFile *.hws setf hollywood 75956c860c3SBram Moolenaar 760071d4279SBram Moolenaar" Tilde (must be before HTML) 761071d4279SBram Moolenaarau BufNewFile,BufRead *.t.html setf tilde 762071d4279SBram Moolenaar 7636e7c7f3aSBram Moolenaar" HTML (.shtml and .stm for server side) 764d09a206eSBram Moolenaarau BufNewFile,BufRead *.html,*.htm,*.shtml,*.stm call dist#ft#FThtml() 765071d4279SBram Moolenaar 7666e7c7f3aSBram Moolenaar" HTML with Ruby - eRuby 76734e0bfaaSBram Moolenaarau BufNewFile,BufRead *.erb,*.rhtml setf eruby 768071d4279SBram Moolenaar 769071d4279SBram Moolenaar" HTML with M4 770071d4279SBram Moolenaarau BufNewFile,BufRead *.html.m4 setf htmlm4 771071d4279SBram Moolenaar 772d1362211SBram Moolenaar" Some template. Used to be HTML Cheetah. 773d1362211SBram Moolenaarau BufNewFile,BufRead *.tmpl setf template 774071d4279SBram Moolenaar 775aba8857aSBram Moolenaar" Host config 776adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/host.conf setf hostconf 777aba8857aSBram Moolenaar 7780ab2c5adSBram Moolenaar" Hosts access 779adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/hosts.allow,*/etc/hosts.deny setf hostsaccess 7800ab2c5adSBram Moolenaar 781071d4279SBram Moolenaar" Hyper Builder 782071d4279SBram Moolenaarau BufNewFile,BufRead *.hb setf hb 783071d4279SBram Moolenaar 784ec7944aaSBram Moolenaar" Httest 785ec7944aaSBram Moolenaarau BufNewFile,BufRead *.htt,*.htb setf httest 786ec7944aaSBram Moolenaar 787071d4279SBram Moolenaar" Icon 788071d4279SBram Moolenaarau BufNewFile,BufRead *.icn setf icon 789071d4279SBram Moolenaar 790071d4279SBram Moolenaar" IDL (Interface Description Language) 791d09a206eSBram Moolenaarau BufNewFile,BufRead *.idl call dist#ft#FTidl() 792071d4279SBram Moolenaar 793071d4279SBram Moolenaar" Microsoft IDL (Interface Description Language) Also *.idl 794071d4279SBram Moolenaar" MOF = WMI (Windows Management Instrumentation) Managed Object Format 795071d4279SBram Moolenaarau BufNewFile,BufRead *.odl,*.mof setf msidl 796071d4279SBram Moolenaar 797071d4279SBram Moolenaar" Icewm menu 798071d4279SBram Moolenaarau BufNewFile,BufRead */.icewm/menu setf icemenu 799071d4279SBram Moolenaar 80034e0bfaaSBram Moolenaar" Indent profile (must come before IDL *.pro!) 80134e0bfaaSBram Moolenaarau BufNewFile,BufRead .indent.pro setf indent 802d09a206eSBram Moolenaarau BufNewFile,BufRead indent.pro call dist#ft#ProtoCheck('indent') 80334e0bfaaSBram Moolenaar 804071d4279SBram Moolenaar" IDL (Interactive Data Language) 805d09a206eSBram Moolenaarau BufNewFile,BufRead *.pro call dist#ft#ProtoCheck('idlang') 806071d4279SBram Moolenaar 8070dc065eeSBram Moolenaar" Indent RC 8080ab2c5adSBram Moolenaarau BufNewFile,BufRead indentrc setf indent 8090dc065eeSBram Moolenaar 810071d4279SBram Moolenaar" Inform 811071d4279SBram Moolenaarau BufNewFile,BufRead *.inf,*.INF setf inform 812071d4279SBram Moolenaar 813c81e5e79SBram Moolenaar" Initng 8149d98fe9cSBram Moolenaarau BufNewFile,BufRead */etc/initng/*/*.i,*.ii setf initng 815c81e5e79SBram Moolenaar 81656b45b9bSBram Moolenaar" Innovation Data Processing 8179d98fe9cSBram Moolenaarau BufRead,BufNewFile upstream.dat\c,upstream.*.dat\c,*.upstream.dat\c setf upstreamdat 818b4d6c3eaSBram Moolenaarau BufRead,BufNewFile fdrupstream.log,upstream.log\c,upstream.*.log\c,*.upstream.log\c,UPSTREAM-*.log\c setf upstreamlog 8199d98fe9cSBram Moolenaarau BufRead,BufNewFile upstreaminstall.log\c,upstreaminstall.*.log\c,*.upstreaminstall.log\c setf upstreaminstalllog 8209d98fe9cSBram Moolenaarau BufRead,BufNewFile usserver.log\c,usserver.*.log\c,*.usserver.log\c setf usserverlog 8219d98fe9cSBram Moolenaarau BufRead,BufNewFile usw2kagt.log\c,usw2kagt.*.log\c,*.usw2kagt.log\c setf usw2kagtlog 82256b45b9bSBram Moolenaar 8232ce06f6eSBram Moolenaar" Ipfilter 824c81e5e79SBram Moolenaarau BufNewFile,BufRead ipf.conf,ipf6.conf,ipf.rules setf ipfilter 8252ce06f6eSBram Moolenaar 826071d4279SBram Moolenaar" Informix 4GL (source - canonical, include file, I4GL+M4 preproc.) 827071d4279SBram Moolenaarau BufNewFile,BufRead *.4gl,*.4gh,*.m4gl setf fgl 828071d4279SBram Moolenaar 829071d4279SBram Moolenaar" .INI file for MSDOS 830071d4279SBram Moolenaarau BufNewFile,BufRead *.ini setf dosini 831071d4279SBram Moolenaar 832071d4279SBram Moolenaar" SysV Inittab 833071d4279SBram Moolenaarau BufNewFile,BufRead inittab setf inittab 834071d4279SBram Moolenaar 835071d4279SBram Moolenaar" Inno Setup 836071d4279SBram Moolenaarau BufNewFile,BufRead *.iss setf iss 837071d4279SBram Moolenaar 838baca7f70SBram Moolenaar" J 839baca7f70SBram Moolenaarau BufNewFile,BufRead *.ijs setf j 840baca7f70SBram Moolenaar 841071d4279SBram Moolenaar" JAL 842071d4279SBram Moolenaarau BufNewFile,BufRead *.jal,*.JAL setf jal 843071d4279SBram Moolenaar 844071d4279SBram Moolenaar" Jam 845071d4279SBram Moolenaarau BufNewFile,BufRead *.jpl,*.jpr setf jam 846071d4279SBram Moolenaar 847071d4279SBram Moolenaar" Java 848071d4279SBram Moolenaarau BufNewFile,BufRead *.java,*.jav setf java 849071d4279SBram Moolenaar 850071d4279SBram Moolenaar" JavaCC 851071d4279SBram Moolenaarau BufNewFile,BufRead *.jj,*.jjt setf javacc 852071d4279SBram Moolenaar 853c1faf3dcSBram Moolenaar" JavaScript, ECMAScript, ES module script, CommonJS script 854c1faf3dcSBram Moolenaarau BufNewFile,BufRead *.js,*.javascript,*.es,*.mjs,*.cjs setf javascript 85592852ceeSBram Moolenaar 85692852ceeSBram Moolenaar" JavaScript with React 85792852ceeSBram Moolenaarau BufNewFile,BufRead *.jsx setf javascriptreact 858071d4279SBram Moolenaar 859071d4279SBram Moolenaar" Java Server Pages 860071d4279SBram Moolenaarau BufNewFile,BufRead *.jsp setf jsp 861071d4279SBram Moolenaar 862071d4279SBram Moolenaar" Java Properties resource file (note: doesn't catch font.properties.pl) 8634317d9b4SBram Moolenaarau BufNewFile,BufRead *.properties,*.properties_??,*.properties_??_?? setf jproperties 864071d4279SBram Moolenaar 865071d4279SBram Moolenaar" Jess 866071d4279SBram Moolenaarau BufNewFile,BufRead *.clp setf jess 867071d4279SBram Moolenaar 868071d4279SBram Moolenaar" Jgraph 869071d4279SBram Moolenaarau BufNewFile,BufRead *.jgr setf jgraph 870071d4279SBram Moolenaar 871251e1912SBram Moolenaar" Jovial 872251e1912SBram Moolenaarau BufNewFile,BufRead *.jov,*.j73,*.jovial setf jovial 873251e1912SBram Moolenaar 87407d87790SBram Moolenaar" JSON 875e18dbe86SBram Moolenaarau BufNewFile,BufRead *.json,*.jsonp,*.webmanifest setf json 87607d87790SBram Moolenaar 8776582e230SKevin Locke" JSON Patch (RFC 6902) 8786582e230SKevin Lockeau BufNewFile,BufRead *.json-patch setf json 8796582e230SKevin Locke 8802e66b0d1Skompowiec2" Jupyter Notebook is also json 8812e66b0d1Skompowiec2au BufNewFile,BufRead *.ipynb setf json 8822e66b0d1Skompowiec2 88350c56893SBram Moolenaar" Other files that look like json 88450c56893SBram Moolenaarau BufNewFile,BufRead .babelrc,.eslintrc,.prettierrc,.firebaserc setf json 88550c56893SBram Moolenaar 886acbb4b57SIzhak Jakov" JSONC 887acbb4b57SIzhak Jakovau BufNewFile,BufRead *.jsonc setf jsonc 888acbb4b57SIzhak Jakov 8890eec8519SChristian Clason" Julia 8900eec8519SChristian Clasonau BufNewFile,BufRead *.jl setf julia 8910eec8519SChristian Clason 892071d4279SBram Moolenaar" Kixtart 893071d4279SBram Moolenaarau BufNewFile,BufRead *.kix setf kix 894071d4279SBram Moolenaar 895071d4279SBram Moolenaar" Kimwitu[++] 896071d4279SBram Moolenaarau BufNewFile,BufRead *.k setf kwt 897071d4279SBram Moolenaar 898822ff866SBram Moolenaar" Kivy 899822ff866SBram Moolenaarau BufNewFile,BufRead *.kv setf kivy 900822ff866SBram Moolenaar 901ab067a21SBram Moolenaar" Kotlin 902ab067a21SBram Moolenaarau BufNewFile,BufRead *.kt,*.ktm,*.kts setf kotlin 903ab067a21SBram Moolenaar 904071d4279SBram Moolenaar" KDE script 905071d4279SBram Moolenaarau BufNewFile,BufRead *.ks setf kscript 906071d4279SBram Moolenaar 9074c3f536fSBram Moolenaar" Kconfig 9084c3f536fSBram Moolenaarau BufNewFile,BufRead Kconfig,Kconfig.debug setf kconfig 9094c3f536fSBram Moolenaar 910071d4279SBram Moolenaar" Lace (ISE) 911071d4279SBram Moolenaarau BufNewFile,BufRead *.ace,*.ACE setf lace 912071d4279SBram Moolenaar 913071d4279SBram Moolenaar" Latte 914071d4279SBram Moolenaarau BufNewFile,BufRead *.latte,*.lte setf latte 915071d4279SBram Moolenaar 91642eeac35SBram Moolenaar" Limits 917adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/limits,*/etc/*limits.conf,*/etc/*limits.d/*.conf setf limits 91842eeac35SBram Moolenaar 919071d4279SBram Moolenaar" LambdaProlog (*.mod too, see Modsim) 920071d4279SBram Moolenaarau BufNewFile,BufRead *.sig setf lprolog 921071d4279SBram Moolenaar 922071d4279SBram Moolenaar" LDAP LDIF 923071d4279SBram Moolenaarau BufNewFile,BufRead *.ldif setf ldif 924071d4279SBram Moolenaar 92542eeac35SBram Moolenaar" Ld loader 92642eeac35SBram Moolenaarau BufNewFile,BufRead *.ld setf ld 92742eeac35SBram Moolenaar 9288feef4ffSBram Moolenaar" Less 9298feef4ffSBram Moolenaarau BufNewFile,BufRead *.less setf less 9308feef4ffSBram Moolenaar 931071d4279SBram Moolenaar" Lex 9320858917eSBram Moolenaarau BufNewFile,BufRead *.lex,*.l,*.lxx,*.l++ setf lex 933071d4279SBram Moolenaar 934071d4279SBram Moolenaar" Libao 935adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/libao.conf,*/.libao setf libao 936071d4279SBram Moolenaar 9370dc065eeSBram Moolenaar" Libsensors 938adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/sensors.conf,*/etc/sensors3.conf setf sensors 9390dc065eeSBram Moolenaar 940071d4279SBram Moolenaar" LFTP 941071d4279SBram Moolenaarau BufNewFile,BufRead lftp.conf,.lftprc,*lftp/rc setf lftp 942071d4279SBram Moolenaar 943071d4279SBram Moolenaar" Lifelines (or Lex for C++!) 944071d4279SBram Moolenaarau BufNewFile,BufRead *.ll setf lifelines 945071d4279SBram Moolenaar 946071d4279SBram Moolenaar" Lilo: Linux loader 9478e5af3e5SBram Moolenaarau BufNewFile,BufRead lilo.conf setf lilo 948071d4279SBram Moolenaar 9492891459bSBram Moolenaar" Lisp (*.el = ELisp, *.cl = Common Lisp) 9502891459bSBram Moolenaar" *.jl was removed, it's also used for Julia, better skip than guess wrong. 951071d4279SBram Moolenaarif has("fname_case") 9522891459bSBram Moolenaar au BufNewFile,BufRead *.lsp,*.lisp,*.el,*.cl,*.L,.emacs,.sawfishrc setf lisp 953071d4279SBram Moolenaarelse 9542891459bSBram Moolenaar au BufNewFile,BufRead *.lsp,*.lisp,*.el,*.cl,.emacs,.sawfishrc setf lisp 955071d4279SBram Moolenaarendif 956071d4279SBram Moolenaar 95742eeac35SBram Moolenaar" SBCL implementation of Common Lisp 95842eeac35SBram Moolenaarau BufNewFile,BufRead sbclrc,.sbclrc setf lisp 95942eeac35SBram Moolenaar 9607a329911SBram Moolenaar" Liquid 9617a329911SBram Moolenaarau BufNewFile,BufRead *.liquid setf liquid 9627a329911SBram Moolenaar 963071d4279SBram Moolenaar" Lite 964071d4279SBram Moolenaarau BufNewFile,BufRead *.lite,*.lt setf lite 965071d4279SBram Moolenaar 96634e0bfaaSBram Moolenaar" LiteStep RC files 96734e0bfaaSBram Moolenaarau BufNewFile,BufRead */LiteStep/*/*.rc setf litestep 96834e0bfaaSBram Moolenaar 96942eeac35SBram Moolenaar" Login access 970adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/login.access setf loginaccess 97142eeac35SBram Moolenaar 97242eeac35SBram Moolenaar" Login defs 973adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/login.defs setf logindefs 97442eeac35SBram Moolenaar 975071d4279SBram Moolenaar" Logtalk 976071d4279SBram Moolenaarau BufNewFile,BufRead *.lgt setf logtalk 977071d4279SBram Moolenaar 978071d4279SBram Moolenaar" LOTOS 979071d4279SBram Moolenaarau BufNewFile,BufRead *.lot,*.lotos setf lotos 980071d4279SBram Moolenaar 981071d4279SBram Moolenaar" Lout (also: *.lt) 982071d4279SBram Moolenaarau BufNewFile,BufRead *.lou,*.lout setf lout 983071d4279SBram Moolenaar 984071d4279SBram Moolenaar" Lua 985071d4279SBram Moolenaarau BufNewFile,BufRead *.lua setf lua 986071d4279SBram Moolenaar 9876e932461SBram Moolenaar" Luarocks 9886e932461SBram Moolenaarau BufNewFile,BufRead *.rockspec setf lua 9896e932461SBram Moolenaar 990aba8857aSBram Moolenaar" Linden Scripting Language (Second Life) 991aba8857aSBram Moolenaarau BufNewFile,BufRead *.lsl setf lsl 992aba8857aSBram Moolenaar 993071d4279SBram Moolenaar" Lynx style file (or LotusScript!) 994071d4279SBram Moolenaarau BufNewFile,BufRead *.lss setf lss 995071d4279SBram Moolenaar 996071d4279SBram Moolenaar" M4 997071d4279SBram Moolenaarau BufNewFile,BufRead *.m4 998071d4279SBram Moolenaar \ if expand("<afile>") !~? 'html.m4$\|fvwm2rc' | setf m4 | endif 999071d4279SBram Moolenaar 1000071d4279SBram Moolenaar" MaGic Point 1001071d4279SBram Moolenaarau BufNewFile,BufRead *.mgp setf mgp 1002071d4279SBram Moolenaar 100301164a65SBram Moolenaar" Mail (for Elm, trn, mutt, muttng, rn, slrn, neomutt) 100401164a65SBram Moolenaarau BufNewFile,BufRead snd.\d\+,.letter,.letter.\d\+,.followup,.article,.article.\d\+,pico.\d\+,mutt{ng,}-*-\w\+,mutt[[:alnum:]_-]\\\{6\},neomutt-*-\w\+,neomutt[[:alnum:]_-]\\\{6\},ae\d\+.txt,/tmp/SLRN[0-9A-Z.]\+,*.eml setf mail 1005071d4279SBram Moolenaar 1006899dddf8SBram Moolenaar" Mail aliases 1007adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/mail/aliases,*/etc/aliases setf mailaliases 1008899dddf8SBram Moolenaar 1009071d4279SBram Moolenaar" Mailcap configuration file 1010071d4279SBram Moolenaarau BufNewFile,BufRead .mailcap,mailcap setf mailcap 1011071d4279SBram Moolenaar 1012071d4279SBram Moolenaar" Makefile 1013071d4279SBram Moolenaarau BufNewFile,BufRead *[mM]akefile,*.mk,*.mak,*.dsp setf make 1014071d4279SBram Moolenaar 1015071d4279SBram Moolenaar" MakeIndex 1016071d4279SBram Moolenaarau BufNewFile,BufRead *.ist,*.mst setf ist 1017071d4279SBram Moolenaar 101800154508SBram Moolenaar" Mallard 101900154508SBram Moolenaarau BufNewFile,BufRead *.page setf mallard 102000154508SBram Moolenaar 1021071d4279SBram Moolenaar" Manpage 1022071d4279SBram Moolenaarau BufNewFile,BufRead *.man setf man 1023071d4279SBram Moolenaar 10240dc065eeSBram Moolenaar" Man config 1025adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/man.conf,man.config setf manconf 10260dc065eeSBram Moolenaar 1027071d4279SBram Moolenaar" Maple V 1028071d4279SBram Moolenaarau BufNewFile,BufRead *.mv,*.mpl,*.mws setf maple 1029071d4279SBram Moolenaar 1030c236c16dSBram Moolenaar" Map (UMN mapserver config file) 1031c236c16dSBram Moolenaarau BufNewFile,BufRead *.map setf map 1032c236c16dSBram Moolenaar 10337a329911SBram Moolenaar" Markdown 10347d76c804SBram Moolenaarau BufNewFile,BufRead *.markdown,*.mdown,*.mkd,*.mkdn,*.mdwn,*.md setf markdown 10357a329911SBram Moolenaar 1036071d4279SBram Moolenaar" Mason 1037fb539273SBram Moolenaarau BufNewFile,BufRead *.mason,*.mhtml,*.comp setf mason 1038071d4279SBram Moolenaar 1039deba5eb1SBram Moolenaar" Mathematica, Matlab, Murphi, Objective C or Octave 1040d09a206eSBram Moolenaarau BufNewFile,BufRead *.m call dist#ft#FTm() 1041071d4279SBram Moolenaar 1042aba8857aSBram Moolenaar" Mathematica notebook 1043aba8857aSBram Moolenaarau BufNewFile,BufRead *.nb setf mma 1044aba8857aSBram Moolenaar 1045071d4279SBram Moolenaar" Maya Extension Language 1046071d4279SBram Moolenaarau BufNewFile,BufRead *.mel setf mel 1047071d4279SBram Moolenaar 10489b451250SBram Moolenaar" Mercurial (hg) commit file 10499b451250SBram Moolenaarau BufNewFile,BufRead hg-editor-*.txt setf hgcommit 10509b451250SBram Moolenaar 10515c73622aSBram Moolenaar" Mercurial config (looks like generic config file) 10525c73622aSBram Moolenaarau BufNewFile,BufRead *.hgrc,*hgrc setf cfg 10535c73622aSBram Moolenaar 1054c3bf7b56SBram Moolenaar" Meson Build system config 1055c3bf7b56SBram Moolenaarau BufNewFile,BufRead meson.build,meson_options.txt setf meson 1056e3e598e8SLiam Beguinau BufNewFile,BufRead *.wrap setf dosini 1057c3bf7b56SBram Moolenaar 10580065402fSBram Moolenaar" Messages (logs mostly) 10598e5af3e5SBram Moolenaarau BufNewFile,BufRead */log/{auth,cron,daemon,debug,kern,lpr,mail,messages,news/news,syslog,user}{,.log,.err,.info,.warn,.crit,.notice}{,.[0-9]*,-[0-9]*} setf messages 1060c81e5e79SBram Moolenaar 1061071d4279SBram Moolenaar" Metafont 1062071d4279SBram Moolenaarau BufNewFile,BufRead *.mf setf mf 1063071d4279SBram Moolenaar 1064071d4279SBram Moolenaar" MetaPost 1065071d4279SBram Moolenaarau BufNewFile,BufRead *.mp setf mp 1066071d4279SBram Moolenaar 1067df1bdc92SBram Moolenaar" MGL 1068df1bdc92SBram Moolenaarau BufNewFile,BufRead *.mgl setf mgl 1069df1bdc92SBram Moolenaar 10704b60a6cdSBram Moolenaar" MIX - Knuth assembly 10714b60a6cdSBram Moolenaarau BufNewFile,BufRead *.mix,*.mixal setf mix 10724b60a6cdSBram Moolenaar 1073071d4279SBram Moolenaar" MMIX or VMS makefile 1074d09a206eSBram Moolenaarau BufNewFile,BufRead *.mms call dist#ft#FTmms() 1075071d4279SBram Moolenaar 1076aba8857aSBram Moolenaar" Symbian meta-makefile definition (MMP) 1077aba8857aSBram Moolenaarau BufNewFile,BufRead *.mmp setf mmp 1078aba8857aSBram Moolenaar 1079071d4279SBram Moolenaar" Modsim III (or LambdaProlog) 1080071d4279SBram Moolenaarau BufNewFile,BufRead *.mod 1081071d4279SBram Moolenaar \ if getline(1) =~ '\<module\>' | 1082071d4279SBram Moolenaar \ setf lprolog | 1083071d4279SBram Moolenaar \ else | 1084071d4279SBram Moolenaar \ setf modsim3 | 1085071d4279SBram Moolenaar \ endif 1086071d4279SBram Moolenaar 10876bc00699SBram Moolenaar" Modula-2 (.md removed in favor of Markdown) 10887d76c804SBram Moolenaarau BufNewFile,BufRead *.m2,*.DEF,*.MOD,*.mi setf modula2 1089071d4279SBram Moolenaar 10906bc00699SBram Moolenaar" Modula-3 (.m3, .i3, .mg, .ig) 1091071d4279SBram Moolenaarau BufNewFile,BufRead *.[mi][3g] setf modula3 1092071d4279SBram Moolenaar 1093071d4279SBram Moolenaar" Monk 1094071d4279SBram Moolenaarau BufNewFile,BufRead *.isc,*.monk,*.ssc,*.tsc setf monk 1095071d4279SBram Moolenaar 1096071d4279SBram Moolenaar" MOO 1097071d4279SBram Moolenaarau BufNewFile,BufRead *.moo setf moo 1098071d4279SBram Moolenaar 1099071d4279SBram Moolenaar" Modconf 1100adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/modules.conf,*/etc/modules,*/etc/conf.modules setf modconf 1101071d4279SBram Moolenaar 1102690c524cSSteven Penny" MPD is based on XML 1103690c524cSSteven Pennyau BufNewFile,BufRead *.mpd setf xml 1104690c524cSSteven Penny 1105071d4279SBram Moolenaar" Mplayer config 1106071d4279SBram Moolenaarau BufNewFile,BufRead mplayer.conf,*/.mplayer/config setf mplayerconf 1107071d4279SBram Moolenaar 11085837f1f4SBram Moolenaar" Motorola S record 11095837f1f4SBram Moolenaarau BufNewFile,BufRead *.s19,*.s28,*.s37,*.mot,*.srec setf srec 1110071d4279SBram Moolenaar 1111437df8f4SBram Moolenaar" Mrxvtrc 1112437df8f4SBram Moolenaarau BufNewFile,BufRead mrxvtrc,.mrxvtrc setf mrxvtrc 1113437df8f4SBram Moolenaar 1114071d4279SBram Moolenaar" Msql 1115071d4279SBram Moolenaarau BufNewFile,BufRead *.msql setf msql 1116071d4279SBram Moolenaar 1117071d4279SBram Moolenaar" Mysql 1118071d4279SBram Moolenaarau BufNewFile,BufRead *.mysql setf mysql 1119071d4279SBram Moolenaar 11208e5af3e5SBram Moolenaar" Mutt setup files (must be before catch *.rc) 11218e5af3e5SBram Moolenaarau BufNewFile,BufRead */etc/Muttrc.d/* call s:StarSetf('muttrc') 11228e5af3e5SBram Moolenaar 112378aa5ffeSBram Moolenaar" Tcl Shell RC file 112478aa5ffeSBram Moolenaarau BufNewFile,BufRead tclsh.rc setf tcl 112578aa5ffeSBram Moolenaar 1126071d4279SBram Moolenaar" M$ Resource files 112730b65817SBram Moolenaarau BufNewFile,BufRead *.rc,*.rch setf rc 1128071d4279SBram Moolenaar 1129cfbc5ee4SBram Moolenaar" MuPAD source 1130cfbc5ee4SBram Moolenaarau BufRead,BufNewFile *.mu setf mupad 1131cfbc5ee4SBram Moolenaar 1132071d4279SBram Moolenaar" Mush 1133071d4279SBram Moolenaarau BufNewFile,BufRead *.mush setf mush 1134071d4279SBram Moolenaar 1135c81e5e79SBram Moolenaar" Mutt setup file (also for Muttng) 11368aff23a1SBram Moolenaarau BufNewFile,BufRead Mutt{ng,}rc setf muttrc 1137071d4279SBram Moolenaar 1138d9bc8a80SBram Moolenaar" N1QL 1139d9bc8a80SBram Moolenaarau BufRead,BufNewfile *.n1ql,*.nql setf n1ql 1140d9bc8a80SBram Moolenaar 11410dc065eeSBram Moolenaar" Nano 11425a5f4591SBram Moolenaarau BufNewFile,BufRead */etc/nanorc,*.nanorc setf nanorc 11430dc065eeSBram Moolenaar 1144071d4279SBram Moolenaar" Nastran input/DMAP 1145071d4279SBram Moolenaar"au BufNewFile,BufRead *.dat setf nastran 1146071d4279SBram Moolenaar 1147071d4279SBram Moolenaar" Natural 1148071d4279SBram Moolenaarau BufNewFile,BufRead *.NS[ACGLMNPS] setf natural 1149071d4279SBram Moolenaar 115001164a65SBram Moolenaar" Noemutt setup file 115101164a65SBram Moolenaarau BufNewFile,BufRead Neomuttrc setf neomuttrc 115201164a65SBram Moolenaar 11531cd871b5SBram Moolenaar" Netrc 11541cd871b5SBram Moolenaarau BufNewFile,BufRead .netrc setf netrc 11551cd871b5SBram Moolenaar 11568b8c0ed6SChris Aumann" Nginx 11578b8c0ed6SChris Aumannau BufNewFile,BufRead *.nginx,nginx*.conf,*nginx.conf,*/etc/nginx/*,*/usr/local/nginx/conf/*,*/nginx/*.conf setf nginx 11588b8c0ed6SChris Aumann 11596ee8d89cSBram Moolenaar" Ninja file 11606ee8d89cSBram Moolenaarau BufNewFile,BufRead *.ninja setf ninja 11616ee8d89cSBram Moolenaar 11621e91eafcSBram Moolenaar" NPM RC file 11631e91eafcSBram Moolenaarau BufNewFile,BufRead npmrc,.npmrc setf dosini 11641e91eafcSBram Moolenaar 1165071d4279SBram Moolenaar" Novell netware batch files 1166071d4279SBram Moolenaarau BufNewFile,BufRead *.ncf setf ncf 1167071d4279SBram Moolenaar 1168071d4279SBram Moolenaar" Nroff/Troff (*.ms and *.t are checked below) 1169071d4279SBram Moolenaarau BufNewFile,BufRead *.me 1170071d4279SBram Moolenaar \ if expand("<afile>") != "read.me" && expand("<afile>") != "click.me" | 1171071d4279SBram Moolenaar \ setf nroff | 1172071d4279SBram Moolenaar \ endif 1173071d4279SBram Moolenaarau BufNewFile,BufRead *.tr,*.nr,*.roff,*.tmac,*.mom setf nroff 1174d09a206eSBram Moolenaarau BufNewFile,BufRead *.[1-9] call dist#ft#FTnroff() 1175071d4279SBram Moolenaar 1176071d4279SBram Moolenaar" Nroff or Objective C++ 1177d09a206eSBram Moolenaarau BufNewFile,BufRead *.mm call dist#ft#FTmm() 1178071d4279SBram Moolenaar 1179071d4279SBram Moolenaar" Not Quite C 1180071d4279SBram Moolenaarau BufNewFile,BufRead *.nqc setf nqc 1181071d4279SBram Moolenaar 1182036986f1SBram Moolenaar" NSE - Nmap Script Engine - uses Lua syntax 1183036986f1SBram Moolenaarau BufNewFile,BufRead *.nse setf lua 1184036986f1SBram Moolenaar 1185071d4279SBram Moolenaar" NSIS 1186d38b055aSBram Moolenaarau BufNewFile,BufRead *.nsi,*.nsh setf nsis 1187071d4279SBram Moolenaar 1188beef4eedSBram Moolenaar" OCaml 1189beef4eedSBram Moolenaarau BufNewFile,BufRead *.ml,*.mli,*.mll,*.mly,.ocamlinit,*.mlt,*.mlp,*.mlip,*.mli.cppo,*.ml.cppo setf ocaml 1190071d4279SBram Moolenaar 1191071d4279SBram Moolenaar" Occam 1192071d4279SBram Moolenaarau BufNewFile,BufRead *.occ setf occam 1193071d4279SBram Moolenaar 1194deba5eb1SBram Moolenaar" Octave 1195deba5eb1SBram Moolenaarau BufNewFile,BufRead octave.conf,.octaverc,octaverc setf octave 1196deba5eb1SBram Moolenaar 1197071d4279SBram Moolenaar" Omnimark 1198071d4279SBram Moolenaarau BufNewFile,BufRead *.xom,*.xin setf omnimark 1199071d4279SBram Moolenaar 1200beef4eedSBram Moolenaar" OPAM 1201beef4eedSBram Moolenaarau BufNewFile,BufRead opam,*.opam,*.opam.template setf opam 1202beef4eedSBram Moolenaar 1203071d4279SBram Moolenaar" OpenROAD 1204071d4279SBram Moolenaarau BufNewFile,BufRead *.or setf openroad 1205071d4279SBram Moolenaar 1206071d4279SBram Moolenaar" OPL 1207071d4279SBram Moolenaarau BufNewFile,BufRead *.[Oo][Pp][Ll] setf opl 1208071d4279SBram Moolenaar 1209071d4279SBram Moolenaar" Oracle config file 1210071d4279SBram Moolenaarau BufNewFile,BufRead *.ora setf ora 1211071d4279SBram Moolenaar 1212071d4279SBram Moolenaar" Packet filter conf 1213071d4279SBram Moolenaarau BufNewFile,BufRead pf.conf setf pf 1214071d4279SBram Moolenaar 121573b4465bSBram Moolenaar" Pacman Config (close enough to dosini) 121673b4465bSBram Moolenaarau BufNewFile,BufRead */etc/pacman.conf setf dosini 121773b4465bSBram Moolenaar 121873b4465bSBram Moolenaar" Pacman hooks 121973b4465bSBram Moolenaarau BufNewFile,BufRead *.hook 122073b4465bSBram Moolenaar \ if getline(1) == '[Trigger]' | 122173b4465bSBram Moolenaar \ setf dosini | 122273b4465bSBram Moolenaar \ endif 122373b4465bSBram Moolenaar 122442eeac35SBram Moolenaar" Pam conf 1225adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/pam.conf setf pamconf 122642eeac35SBram Moolenaar 122761154810SBram Moolenaar" Pam environment 1228aacc6afdSBram Moolenaarau BufNewFile,BufRead pam_env.conf,.pam_environment setf pamenv 122961154810SBram Moolenaar 1230071d4279SBram Moolenaar" PApp 1231071d4279SBram Moolenaarau BufNewFile,BufRead *.papp,*.pxml,*.pxsl setf papp 1232071d4279SBram Moolenaar 12330dc065eeSBram Moolenaar" Password file 1234adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/passwd,*/etc/passwd-,*/etc/passwd.edit,*/etc/shadow,*/etc/shadow-,*/etc/shadow.edit,*/var/backups/passwd.bak,*/var/backups/shadow.bak setf passwd 12350dc065eeSBram Moolenaar 12368323cab3SBram Moolenaar" Pascal (also *.p, *.pp, *.inc) 1237a0122dcdSBram Moolenaarau BufNewFile,BufRead *.pas setf pascal 1238a0122dcdSBram Moolenaar 12398323cab3SBram Moolenaar" Pascal or Puppet manifest 1240a0122dcdSBram Moolenaarau BufNewFile,BufRead *.pp call dist#ft#FTpp() 1241071d4279SBram Moolenaar 124244aaf541SBram Moolenaar" Delphi or Lazarus program file 124344aaf541SBram Moolenaarau BufNewFile,BufRead *.dpr,*.lpr setf pascal 1244071d4279SBram Moolenaar 1245f6d9935aSBram Moolenaar" Free Pascal makefile definition file 1246f6d9935aSBram Moolenaarau BufNewFile,BufRead *.fpc setf fpcmake 1247f6d9935aSBram Moolenaar 1248aba8857aSBram Moolenaar" PDF 1249aba8857aSBram Moolenaarau BufNewFile,BufRead *.pdf setf pdf 1250aba8857aSBram Moolenaar 125101164a65SBram Moolenaar" PCMK - HAE - crm configure edit 125201164a65SBram Moolenaarau BufNewFile,BufRead *.pcmk setf pcmk 125301164a65SBram Moolenaar 1254071d4279SBram Moolenaar" Perl 1255071d4279SBram Moolenaarif has("fname_case") 1256d09a206eSBram Moolenaar au BufNewFile,BufRead *.pl,*.PL call dist#ft#FTpl() 1257071d4279SBram Moolenaarelse 1258d09a206eSBram Moolenaar au BufNewFile,BufRead *.pl call dist#ft#FTpl() 1259071d4279SBram Moolenaarendif 1260b4d6c3eaSBram Moolenaarau BufNewFile,BufRead *.plx,*.al,*.psgi setf perl 1261071d4279SBram Moolenaar 1262071d4279SBram Moolenaar" Perl, XPM or XPM2 1263071d4279SBram Moolenaarau BufNewFile,BufRead *.pm 1264071d4279SBram Moolenaar \ if getline(1) =~ "XPM2" | 1265071d4279SBram Moolenaar \ setf xpm2 | 1266071d4279SBram Moolenaar \ elseif getline(1) =~ "XPM" | 1267071d4279SBram Moolenaar \ setf xpm | 1268071d4279SBram Moolenaar \ else | 1269071d4279SBram Moolenaar \ setf perl | 1270071d4279SBram Moolenaar \ endif 1271071d4279SBram Moolenaar 1272071d4279SBram Moolenaar" Perl POD 1273071d4279SBram Moolenaarau BufNewFile,BufRead *.pod setf pod 1274071d4279SBram Moolenaar 127584c63267SBram Moolenaar" Php, php3, php4, etc. 1276aba8857aSBram Moolenaar" Also Phtml (was used for PHP 2 in the past) 1277aba8857aSBram Moolenaar" Also .ctp for Cake template file 1278aba8857aSBram Moolenaarau BufNewFile,BufRead *.php,*.php\d,*.phtml,*.ctp setf php 1279071d4279SBram Moolenaar 12801e91eafcSBram Moolenaar" PHP config 1281d58a3bf7SBram Moolenaarau BufNewFile,BufRead php.ini-* setf dosini 12821e91eafcSBram Moolenaar 128340962ec9SBram Moolenaar" Pike and Cmod 128440962ec9SBram Moolenaarau BufNewFile,BufRead *.pike,*.pmod setf pike 128540962ec9SBram Moolenaarau BufNewFile,BufRead *.cmod setf cmod 1286071d4279SBram Moolenaar 1287071d4279SBram Moolenaar" Pinfo config 1288071d4279SBram Moolenaarau BufNewFile,BufRead */etc/pinforc,*/.pinforc setf pinfo 1289071d4279SBram Moolenaar 1290071d4279SBram Moolenaar" Palm Resource compiler 1291071d4279SBram Moolenaarau BufNewFile,BufRead *.rcp setf pilrc 1292071d4279SBram Moolenaar 1293071d4279SBram Moolenaar" Pine config 1294071d4279SBram Moolenaarau BufNewFile,BufRead .pinerc,pinerc,.pinercex,pinercex setf pine 1295071d4279SBram Moolenaar 12963a4c53baSBram Moolenaar" Pipenv Pipfiles 129728b6a3beSAman Vermaau BufNewFile,BufRead Pipfile setf toml 12983a4c53baSBram Moolenaarau BufNewFile,BufRead Pipfile.lock setf json 12993a4c53baSBram Moolenaar 1300e2db695dSBram Moolenaar" PL/1, PL/I 1301e2db695dSBram Moolenaarau BufNewFile,BufRead *.pli,*.pl1 setf pli 1302e2db695dSBram Moolenaar 1303071d4279SBram Moolenaar" PL/M (also: *.inp) 1304071d4279SBram Moolenaarau BufNewFile,BufRead *.plm,*.p36,*.pac setf plm 1305071d4279SBram Moolenaar 1306071d4279SBram Moolenaar" PL/SQL 1307071d4279SBram Moolenaarau BufNewFile,BufRead *.pls,*.plsql setf plsql 1308071d4279SBram Moolenaar 1309071d4279SBram Moolenaar" PLP 1310071d4279SBram Moolenaarau BufNewFile,BufRead *.plp setf plp 1311071d4279SBram Moolenaar 1312071d4279SBram Moolenaar" PO and PO template (GNU gettext) 1313071d4279SBram Moolenaarau BufNewFile,BufRead *.po,*.pot setf po 1314071d4279SBram Moolenaar 1315071d4279SBram Moolenaar" Postfix main config 1316071d4279SBram Moolenaarau BufNewFile,BufRead main.cf setf pfmain 1317071d4279SBram Moolenaar 1318071d4279SBram Moolenaar" PostScript (+ font files, encapsulated PostScript, Adobe Illustrator) 1319071d4279SBram Moolenaarau BufNewFile,BufRead *.ps,*.pfa,*.afm,*.eps,*.epsf,*.epsi,*.ai setf postscr 1320071d4279SBram Moolenaar 1321071d4279SBram Moolenaar" PostScript Printer Description 1322071d4279SBram Moolenaarau BufNewFile,BufRead *.ppd setf ppd 1323071d4279SBram Moolenaar 1324071d4279SBram Moolenaar" Povray 1325071d4279SBram Moolenaarau BufNewFile,BufRead *.pov setf pov 1326071d4279SBram Moolenaar 1327071d4279SBram Moolenaar" Povray configuration 1328071d4279SBram Moolenaarau BufNewFile,BufRead .povrayrc setf povini 1329071d4279SBram Moolenaar 13308323cab3SBram Moolenaar" Povray, Pascal, PHP or assembly 1331d09a206eSBram Moolenaarau BufNewFile,BufRead *.inc call dist#ft#FTinc() 1332071d4279SBram Moolenaar 1333ef38bcf0SBram Moolenaar" PowerShell 1334ef38bcf0SBram Moolenaarau BufNewFile,BufRead *.ps1,*.psd1,*.psm1,*.pssc setf ps1 1335ef38bcf0SBram Moolenaarau BufNewFile,BufRead *.ps1xml setf ps1xml 1336ef38bcf0SBram Moolenaarau BufNewFile,BufRead *.cdxml,*.psc1 setf xml 1337ef38bcf0SBram Moolenaar 1338071d4279SBram Moolenaar" Printcap and Termcap 1339071d4279SBram Moolenaarau BufNewFile,BufRead *printcap 1340071d4279SBram Moolenaar \ let b:ptcap_type = "print" | setf ptcap 1341071d4279SBram Moolenaarau BufNewFile,BufRead *termcap 1342071d4279SBram Moolenaar \ let b:ptcap_type = "term" | setf ptcap 1343071d4279SBram Moolenaar 13448323cab3SBram Moolenaar" PCCTS / ANTLR 13458323cab3SBram Moolenaar"au BufNewFile,BufRead *.g setf antlr 1346071d4279SBram Moolenaarau BufNewFile,BufRead *.g setf pccts 1347071d4279SBram Moolenaar 1348071d4279SBram Moolenaar" PPWizard 1349071d4279SBram Moolenaarau BufNewFile,BufRead *.it,*.ih setf ppwiz 1350071d4279SBram Moolenaar 13518323cab3SBram Moolenaar" Puppet 13528323cab3SBram Moolenaarau BufNewFile,BufRead Puppetfile setf ruby 13538323cab3SBram Moolenaar 13548323cab3SBram Moolenaar" Embedded Puppet 13558323cab3SBram Moolenaarau BufNewFile,BufRead *.epp setf epuppet 13568323cab3SBram Moolenaar 135700a927d6SBram Moolenaar" Obj 3D file format 135800a927d6SBram Moolenaar" TODO: is there a way to avoid MS-Windows Object files? 135900a927d6SBram Moolenaarau BufNewFile,BufRead *.obj setf obj 136000a927d6SBram Moolenaar 1361071d4279SBram Moolenaar" Oracle Pro*C/C++ 136210425273SBram Moolenaarau BufNewFile,BufRead *.pc setf proc 1363071d4279SBram Moolenaar 1364c81e5e79SBram Moolenaar" Privoxy actions file 1365c81e5e79SBram Moolenaarau BufNewFile,BufRead *.action setf privoxy 1366c81e5e79SBram Moolenaar 1367071d4279SBram Moolenaar" Procmail 1368071d4279SBram Moolenaarau BufNewFile,BufRead .procmail,.procmailrc setf procmail 1369071d4279SBram Moolenaar 1370071d4279SBram Moolenaar" Progress or CWEB 1371d09a206eSBram Moolenaarau BufNewFile,BufRead *.w call dist#ft#FTprogress_cweb() 1372071d4279SBram Moolenaar 1373071d4279SBram Moolenaar" Progress or assembly 1374d09a206eSBram Moolenaarau BufNewFile,BufRead *.i call dist#ft#FTprogress_asm() 1375071d4279SBram Moolenaar 1376071d4279SBram Moolenaar" Progress or Pascal 1377d09a206eSBram Moolenaarau BufNewFile,BufRead *.p call dist#ft#FTprogress_pascal() 1378071d4279SBram Moolenaar 1379071d4279SBram Moolenaar" Software Distributor Product Specification File (POSIX 1387.2-1995) 1380071d4279SBram Moolenaarau BufNewFile,BufRead *.psf setf psf 1381071d4279SBram Moolenaarau BufNewFile,BufRead INDEX,INFO 1382071d4279SBram Moolenaar \ if getline(1) =~ '^\s*\(distribution\|installed_software\|root\|bundle\|product\)\s*$' | 1383071d4279SBram Moolenaar \ setf psf | 1384071d4279SBram Moolenaar \ endif 1385071d4279SBram Moolenaar 1386071d4279SBram Moolenaar" Prolog 1387071d4279SBram Moolenaarau BufNewFile,BufRead *.pdb setf prolog 1388071d4279SBram Moolenaar 1389aba8857aSBram Moolenaar" Promela 1390aba8857aSBram Moolenaarau BufNewFile,BufRead *.pml setf promela 1391aba8857aSBram Moolenaar 1392112a0064SBram Moolenaar" Property Specification Language (PSL) 1393112a0064SBram Moolenaarau BufNewFile,BufRead *.psl setf psl 1394112a0064SBram Moolenaar 1395ec7944aaSBram Moolenaar" Google protocol buffers 1396ec7944aaSBram Moolenaarau BufNewFile,BufRead *.proto setf proto 139788774a30SBram Moolenaarau BufNewFile,BufRead *.pbtxt setf pbtxt 1398ec7944aaSBram Moolenaar 1399c80f6475SBram Moolenaar" Poke 1400c80f6475SBram Moolenaarau BufNewFile,BufRead *.pk setf poke 1401c80f6475SBram Moolenaar 14020dc065eeSBram Moolenaar" Protocols 1403adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/protocols setf protocols 14040dc065eeSBram Moolenaar 1405eb05d05fSBram Moolenaar" Pyret 1406eb05d05fSBram Moolenaarau BufNewFile,BufRead *.arr setf pyret 1407eb05d05fSBram Moolenaar 1408071d4279SBram Moolenaar" Pyrex 1409071d4279SBram Moolenaarau BufNewFile,BufRead *.pyx,*.pxd setf pyrex 1410071d4279SBram Moolenaar 141138654503SBram Moolenaar" Python, Python Shell Startup and Python Stub Files 14120ab2c5adSBram Moolenaar" Quixote (Python-based web framework) 1413ad723503SBram Moolenaarau BufNewFile,BufRead *.py,*.pyw,.pythonstartup,.pythonrc setf python 1414ad723503SBram Moolenaarau BufNewFile,BufRead *.ptl,*.pyi,SConstruct setf python 14150ab2c5adSBram Moolenaar 1416071d4279SBram Moolenaar" Radiance 1417071d4279SBram Moolenaarau BufNewFile,BufRead *.rad,*.mat setf radiance 1418071d4279SBram Moolenaar 14196c391a74SBram Moolenaar" Raku (formerly Perl6) 14203f88e71fSBram Moolenaarau BufNewFile,BufRead *.pm6,*.p6,*.t6,*.pod6,*.raku,*.rakumod,*.rakudoc,*.rakutest setf raku 14213f88e71fSBram Moolenaar 1422071d4279SBram Moolenaar" Ratpoison config/command files 1423071d4279SBram Moolenaarau BufNewFile,BufRead .ratpoisonrc,ratpoisonrc setf ratpoison 1424071d4279SBram Moolenaar 1425071d4279SBram Moolenaar" RCS file 1426071d4279SBram Moolenaarau BufNewFile,BufRead *\,v setf rcs 1427071d4279SBram Moolenaar 1428071d4279SBram Moolenaar" Readline 142913fcaaf1SBram Moolenaarau BufNewFile,BufRead .inputrc,inputrc setf readline 1430071d4279SBram Moolenaar 1431071d4279SBram Moolenaar" Registry for MS-Windows 1432071d4279SBram Moolenaarau BufNewFile,BufRead *.reg 1433071d4279SBram Moolenaar \ if getline(1) =~? '^REGEDIT[0-9]*\s*$\|^Windows Registry Editor Version \d*\.\d*\s*$' | setf registry | endif 1434071d4279SBram Moolenaar 1435071d4279SBram Moolenaar" Renderman Interface Bytestream 1436071d4279SBram Moolenaarau BufNewFile,BufRead *.rib setf rib 1437071d4279SBram Moolenaar 1438a4ce82feSBram Moolenaar" Rego Policy Language 1439a4ce82feSBram Moolenaarau BufNewFile,BufRead *.rego setf rego 1440a4ce82feSBram Moolenaar 1441071d4279SBram Moolenaar" Rexx 14423a0d8090SBram Moolenaarau BufNewFile,BufRead *.rex,*.orx,*.rxo,*.rxj,*.jrexx,*.rexxj,*.rexx,*.testGroup,*.testUnit setf rexx 1443071d4279SBram Moolenaar 1444fd2ac767SBram Moolenaar" R Help file 1445c1e37901SBram Moolenaarif has("fname_case") 1446362e1a30SBram Moolenaar au BufNewFile,BufRead *.rd,*.Rd setf rhelp 1447c1e37901SBram Moolenaarelse 1448c1e37901SBram Moolenaar au BufNewFile,BufRead *.rd setf rhelp 1449c1e37901SBram Moolenaarendif 1450c1e37901SBram Moolenaar 1451c1e37901SBram Moolenaar" R noweb file 1452c1e37901SBram Moolenaarif has("fname_case") 1453c1e37901SBram Moolenaar au BufNewFile,BufRead *.Rnw,*.rnw,*.Snw,*.snw setf rnoweb 1454c1e37901SBram Moolenaarelse 1455c1e37901SBram Moolenaar au BufNewFile,BufRead *.rnw,*.snw setf rnoweb 1456c1e37901SBram Moolenaarendif 1457fd2ac767SBram Moolenaar 1458db6ea063SBram Moolenaar" R Markdown file 1459db6ea063SBram Moolenaarif has("fname_case") 1460db6ea063SBram Moolenaar au BufNewFile,BufRead *.Rmd,*.rmd,*.Smd,*.smd setf rmd 1461db6ea063SBram Moolenaarelse 1462db6ea063SBram Moolenaar au BufNewFile,BufRead *.rmd,*.smd setf rmd 1463db6ea063SBram Moolenaarendif 1464db6ea063SBram Moolenaar 1465af125866SBram Moolenaar" RSS looks like XML 1466af125866SBram Moolenaarau BufNewFile,BufRead *.rss setf xml 1467af125866SBram Moolenaar 1468db6ea063SBram Moolenaar" R reStructuredText file 1469db6ea063SBram Moolenaarif has("fname_case") 1470db6ea063SBram Moolenaar au BufNewFile,BufRead *.Rrst,*.rrst,*.Srst,*.srst setf rrst 1471db6ea063SBram Moolenaarelse 1472db6ea063SBram Moolenaar au BufNewFile,BufRead *.rrst,*.srst setf rrst 1473db6ea063SBram Moolenaarendif 1474db6ea063SBram Moolenaar 1475071d4279SBram Moolenaar" Rexx, Rebol or R 1476d09a206eSBram Moolenaarau BufNewFile,BufRead *.r,*.R call dist#ft#FTr() 1477071d4279SBram Moolenaar 1478071d4279SBram Moolenaar" Remind 14798e5af3e5SBram Moolenaarau BufNewFile,BufRead .reminders,*.remind,*.rem setf remind 1480071d4279SBram Moolenaar 1481071d4279SBram Moolenaar" Resolv.conf 1482071d4279SBram Moolenaarau BufNewFile,BufRead resolv.conf setf resolv 1483071d4279SBram Moolenaar 1484071d4279SBram Moolenaar" Relax NG Compact 1485071d4279SBram Moolenaarau BufNewFile,BufRead *.rnc setf rnc 1486071d4279SBram Moolenaar 1487bf88493cSBram Moolenaar" Relax NG XML 1488bf88493cSBram Moolenaarau BufNewFile,BufRead *.rng setf rng 1489bf88493cSBram Moolenaar 1490071d4279SBram Moolenaar" RPL/2 1491071d4279SBram Moolenaarau BufNewFile,BufRead *.rpl setf rpl 1492071d4279SBram Moolenaar 1493071d4279SBram Moolenaar" Robots.txt 1494071d4279SBram Moolenaarau BufNewFile,BufRead robots.txt setf robots 1495071d4279SBram Moolenaar 1496071d4279SBram Moolenaar" Rpcgen 1497071d4279SBram Moolenaarau BufNewFile,BufRead *.x setf rpcgen 1498071d4279SBram Moolenaar 14990818ab82Szainin" MikroTik RouterOS script 15000818ab82Szaininau BufRead,BufNewFile *.rsc setf routeros 15010818ab82Szainin 1502071d4279SBram Moolenaar" reStructuredText Documentation Format 1503071d4279SBram Moolenaarau BufNewFile,BufRead *.rst setf rst 1504071d4279SBram Moolenaar 1505071d4279SBram Moolenaar" RTF 1506071d4279SBram Moolenaarau BufNewFile,BufRead *.rtf setf rtf 1507071d4279SBram Moolenaar 15080ab2c5adSBram Moolenaar" Interactive Ruby shell 15090ab2c5adSBram Moolenaarau BufNewFile,BufRead .irbrc,irbrc setf ruby 15100ab2c5adSBram Moolenaar 1511071d4279SBram Moolenaar" Ruby 15122a8a3ecbSBram Moolenaarau BufNewFile,BufRead *.rb,*.rbw setf ruby 15132a8a3ecbSBram Moolenaar 15142a8a3ecbSBram Moolenaar" RubyGems 15152a8a3ecbSBram Moolenaarau BufNewFile,BufRead *.gemspec setf ruby 15162a8a3ecbSBram Moolenaar 15178323cab3SBram Moolenaar" RBS (Ruby Signature) 15188323cab3SBram Moolenaarau BufNewFile,BufRead *.rbs setf rbs 1519b4ada79aSBram Moolenaar 15202a8a3ecbSBram Moolenaar" Rackup 15212a8a3ecbSBram Moolenaarau BufNewFile,BufRead *.ru setf ruby 15222a8a3ecbSBram Moolenaar 15232a8a3ecbSBram Moolenaar" Bundler 15242a8a3ecbSBram Moolenaarau BufNewFile,BufRead Gemfile setf ruby 1525071d4279SBram Moolenaar 152634e0bfaaSBram Moolenaar" Ruby on Rails 152734e0bfaaSBram Moolenaarau BufNewFile,BufRead *.builder,*.rxml,*.rjs setf ruby 152834e0bfaaSBram Moolenaar 152934e0bfaaSBram Moolenaar" Rantfile and Rakefile is like Ruby 153034e0bfaaSBram Moolenaarau BufNewFile,BufRead [rR]antfile,*.rant,[rR]akefile,*.rake setf ruby 1531a5792f58SBram Moolenaar 15328323cab3SBram Moolenaar" Rust 15338323cab3SBram Moolenaarau BufNewFile,BufRead *.rs setf rust 153428b6a3beSAman Vermaau BufNewFile,BufRead Cargo.lock,*/.cargo/config,*/.cargo/credentials setf toml 15358323cab3SBram Moolenaar 15365c73622aSBram Moolenaar" S-lang (or shader language, or SmallLisp) 1537071d4279SBram Moolenaarau BufNewFile,BufRead *.sl setf slang 1538071d4279SBram Moolenaar 1539071d4279SBram Moolenaar" Samba config 1540071d4279SBram Moolenaarau BufNewFile,BufRead smb.conf setf samba 1541071d4279SBram Moolenaar 1542071d4279SBram Moolenaar" SAS script 1543071d4279SBram Moolenaarau BufNewFile,BufRead *.sas setf sas 1544071d4279SBram Moolenaar 1545c236c16dSBram Moolenaar" Sass 1546c236c16dSBram Moolenaarau BufNewFile,BufRead *.sass setf sass 1547c236c16dSBram Moolenaar 1548071d4279SBram Moolenaar" Sather 1549071d4279SBram Moolenaarau BufNewFile,BufRead *.sa setf sather 1550071d4279SBram Moolenaar 1551e4a3bcf2SBram Moolenaar" Scala 15526db7b637SBrennon Mau BufNewFile,BufRead *.scala,*.sc setf scala 1553e4a3bcf2SBram Moolenaar 1554b4d6c3eaSBram Moolenaar" SBT - Scala Build Tool 1555b4d6c3eaSBram Moolenaarau BufNewFile,BufRead *.sbt setf sbt 1556b4d6c3eaSBram Moolenaar 1557071d4279SBram Moolenaar" Scilab 1558899dddf8SBram Moolenaarau BufNewFile,BufRead *.sci,*.sce setf scilab 1559071d4279SBram Moolenaar 1560dd097bdcSGregory Anders" scdoc 1561dd097bdcSGregory Andersau BufNewFile,BufRead *.scd setf scdoc 1562dd097bdcSGregory Anders 15630ed0eea2SBram Moolenaar" SCSS 15640ed0eea2SBram Moolenaarau BufNewFile,BufRead *.scss setf scss 15650ed0eea2SBram Moolenaar 1566c81e5e79SBram Moolenaar" SD: Streaming Descriptors 1567c81e5e79SBram Moolenaarau BufNewFile,BufRead *.sd setf sd 1568c81e5e79SBram Moolenaar 1569071d4279SBram Moolenaar" SDL 1570071d4279SBram Moolenaarau BufNewFile,BufRead *.sdl,*.pr setf sdl 1571071d4279SBram Moolenaar 1572071d4279SBram Moolenaar" sed 1573071d4279SBram Moolenaarau BufNewFile,BufRead *.sed setf sed 1574071d4279SBram Moolenaar 1575c0fcb6e0SBram Moolenaar" svelte 1576c0fcb6e0SBram Moolenaarau BufNewFile,BufRead *.svelte setf svelte 1577c0fcb6e0SBram Moolenaar 157838654503SBram Moolenaar" Sieve (RFC 3028, 5228) 157938654503SBram Moolenaarau BufNewFile,BufRead *.siv,*.sieve setf sieve 1580293ee4d4SBram Moolenaar 1581071d4279SBram Moolenaar" Sendmail 1582071d4279SBram Moolenaarau BufNewFile,BufRead sendmail.cf setf sm 1583071d4279SBram Moolenaar 1584aba8857aSBram Moolenaar" Sendmail .mc files are actually m4. Could also be MS Message text file. 1585d09a206eSBram Moolenaarau BufNewFile,BufRead *.mc call dist#ft#McSetf() 1586071d4279SBram Moolenaar 15870dc065eeSBram Moolenaar" Services 1588adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/services setf services 15890dc065eeSBram Moolenaar 15900dc065eeSBram Moolenaar" Service Location config 1591adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/slp.conf setf slpconf 15920dc065eeSBram Moolenaar 15930dc065eeSBram Moolenaar" Service Location registration 1594adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/slp.reg setf slpreg 15950dc065eeSBram Moolenaar 15960dc065eeSBram Moolenaar" Service Location SPI 1597adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/slp.spi setf slpspi 15980dc065eeSBram Moolenaar 15990dc065eeSBram Moolenaar" Setserial config 1600adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/serial.conf setf setserial 16010dc065eeSBram Moolenaar 1602071d4279SBram Moolenaar" SGML 1603071d4279SBram Moolenaarau BufNewFile,BufRead *.sgm,*.sgml 1604071d4279SBram Moolenaar \ if getline(1).getline(2).getline(3).getline(4).getline(5) =~? 'linuxdoc' | 1605071d4279SBram Moolenaar \ setf sgmllnx | 1606071d4279SBram Moolenaar \ elseif getline(1) =~ '<!DOCTYPE.*DocBook' || getline(2) =~ '<!DOCTYPE.*DocBook' | 1607071d4279SBram Moolenaar \ let b:docbk_type = "sgml" | 16082df58b4aSBram Moolenaar \ let b:docbk_ver = 4 | 1609071d4279SBram Moolenaar \ setf docbk | 1610071d4279SBram Moolenaar \ else | 1611071d4279SBram Moolenaar \ setf sgml | 1612071d4279SBram Moolenaar \ endif 1613071d4279SBram Moolenaar 1614071d4279SBram Moolenaar" SGMLDECL 1615071d4279SBram Moolenaarau BufNewFile,BufRead *.decl,*.dcl,*.dec 1616071d4279SBram Moolenaar \ if getline(1).getline(2).getline(3) =~? '^<!SGML' | 1617071d4279SBram Moolenaar \ setf sgmldecl | 1618071d4279SBram Moolenaar \ endif 1619071d4279SBram Moolenaar 1620071d4279SBram Moolenaar" SGML catalog file 16214317d9b4SBram Moolenaarau BufNewFile,BufRead catalog setf catalog 1622071d4279SBram Moolenaar 1623071d4279SBram Moolenaar" Shell scripts (sh, ksh, bash, bash2, csh); Allow .profile_foo etc. 1624cb80aa2dSBram Moolenaar" Gentoo ebuilds, Arch Linux PKGBUILDs and Alpine Linux APKBUILDs are actually 1625cb80aa2dSBram Moolenaar" bash scripts. 1626147e7d0cSBram Moolenaar" NOTE: Patterns ending in a star are further down, these have lower priority. 1627409da842SBram Moolenaarau BufNewFile,BufRead .bashrc,bashrc,bash.bashrc,.bash[_-]profile,.bash[_-]logout,.bash[_-]aliases,bash-fc[-.],*.ebuild,*.bash,*.eclass,PKGBUILD,APKBUILD call dist#ft#SetFileTypeSH("bash") 1628147e7d0cSBram Moolenaarau BufNewFile,BufRead .kshrc,*.ksh call dist#ft#SetFileTypeSH("ksh") 1629147e7d0cSBram Moolenaarau BufNewFile,BufRead */etc/profile,.profile,*.sh,*.env call dist#ft#SetFileTypeSH(getline(1)) 1630147e7d0cSBram Moolenaar 163106481427SBram Moolenaar" Shell script (Arch Linux) or PHP file (Drupal) 163206481427SBram Moolenaarau BufNewFile,BufRead *.install 163306481427SBram Moolenaar \ if getline(1) =~ '<?php' | 163406481427SBram Moolenaar \ setf php | 163506481427SBram Moolenaar \ else | 1636d09a206eSBram Moolenaar \ call dist#ft#SetFileTypeSH("bash") | 163706481427SBram Moolenaar \ endif 163806481427SBram Moolenaar 16392bf60b30SBram Moolenaar" tcsh scripts (patterns ending in a star further below) 1640147e7d0cSBram Moolenaarau BufNewFile,BufRead .tcshrc,*.tcsh,tcsh.tcshrc,tcsh.login call dist#ft#SetFileTypeShell("tcsh") 1641071d4279SBram Moolenaar 1642071d4279SBram Moolenaar" csh scripts, but might also be tcsh scripts (on some systems csh is tcsh) 16432bf60b30SBram Moolenaar" (patterns ending in a start further below) 1644147e7d0cSBram Moolenaarau BufNewFile,BufRead .login,.cshrc,csh.cshrc,csh.login,csh.logout,*.csh,.alias call dist#ft#CSH() 1645071d4279SBram Moolenaar 16462bf60b30SBram Moolenaar" Z-Shell script (patterns ending in a star further below) 1647adc2182cSBram Moolenaarau BufNewFile,BufRead .zprofile,*/etc/zprofile,.zfbfmarks setf zsh 16482bf60b30SBram Moolenaarau BufNewFile,BufRead .zshrc,.zshenv,.zlogin,.zlogout,.zcompdump setf zsh 1649e37d50a5SBram Moolenaarau BufNewFile,BufRead *.zsh setf zsh 1650071d4279SBram Moolenaar 1651071d4279SBram Moolenaar" Scheme 16529cd91a1eSBram Moolenaarau BufNewFile,BufRead *.scm,*.ss,*.rkt,*.rktd,*.rktl setf scheme 1653071d4279SBram Moolenaar 1654071d4279SBram Moolenaar" Screen RC 1655071d4279SBram Moolenaarau BufNewFile,BufRead .screenrc,screenrc setf screen 1656071d4279SBram Moolenaar 1657beef4eedSBram Moolenaar" Sexplib 1658beef4eedSBram Moolenaarau BufNewFile,BufRead *.sexp setf sexplib 1659beef4eedSBram Moolenaar 1660071d4279SBram Moolenaar" Simula 1661071d4279SBram Moolenaarau BufNewFile,BufRead *.sim setf simula 1662071d4279SBram Moolenaar 1663071d4279SBram Moolenaar" SINDA 1664071d4279SBram Moolenaarau BufNewFile,BufRead *.sin,*.s85 setf sinda 1665071d4279SBram Moolenaar 1666910f66f9SBram Moolenaar" SiSU 1667d68071d8SBram Moolenaarau BufNewFile,BufRead *.sst,*.ssm,*.ssi,*.-sst,*._sst setf sisu 1668910f66f9SBram Moolenaarau BufNewFile,BufRead *.sst.meta,*.-sst.meta,*._sst.meta setf sisu 1669910f66f9SBram Moolenaar 1670071d4279SBram Moolenaar" SKILL 1671e756604fSBram Moolenaarau BufNewFile,BufRead *.il,*.ils,*.cdf setf skill 1672071d4279SBram Moolenaar 1673071d4279SBram Moolenaar" SLRN 1674071d4279SBram Moolenaarau BufNewFile,BufRead .slrnrc setf slrnrc 1675071d4279SBram Moolenaarau BufNewFile,BufRead *.score setf slrnsc 1676071d4279SBram Moolenaar 167734cdc3e3SBram Moolenaar" Smalltalk (and TeX) 167834cdc3e3SBram Moolenaarau BufNewFile,BufRead *.st setf st 167934cdc3e3SBram Moolenaarau BufNewFile,BufRead *.cls 168034cdc3e3SBram Moolenaar \ if getline(1) =~ '^%' | 168134cdc3e3SBram Moolenaar \ setf tex | 16823a0d8090SBram Moolenaar \ elseif getline(1)[0] == '#' && getline(1) =~ 'rexx' | 16833a0d8090SBram Moolenaar \ setf rexx | 168434cdc3e3SBram Moolenaar \ else | 168534cdc3e3SBram Moolenaar \ setf st | 168634cdc3e3SBram Moolenaar \ endif 1687071d4279SBram Moolenaar 1688071d4279SBram Moolenaar" Smarty templates 1689071d4279SBram Moolenaarau BufNewFile,BufRead *.tpl setf smarty 1690071d4279SBram Moolenaar 1691071d4279SBram Moolenaar" SMIL or XML 1692071d4279SBram Moolenaarau BufNewFile,BufRead *.smil 1693071d4279SBram Moolenaar \ if getline(1) =~ '<?\s*xml.*?>' | 1694071d4279SBram Moolenaar \ setf xml | 1695071d4279SBram Moolenaar \ else | 1696071d4279SBram Moolenaar \ setf smil | 1697071d4279SBram Moolenaar \ endif 1698071d4279SBram Moolenaar 1699071d4279SBram Moolenaar" SMIL or SNMP MIB file 1700071d4279SBram Moolenaarau BufNewFile,BufRead *.smi 1701071d4279SBram Moolenaar \ if getline(1) =~ '\<smil\>' | 1702071d4279SBram Moolenaar \ setf smil | 1703071d4279SBram Moolenaar \ else | 1704071d4279SBram Moolenaar \ setf mib | 1705071d4279SBram Moolenaar \ endif 1706071d4279SBram Moolenaar 1707071d4279SBram Moolenaar" SMITH 1708071d4279SBram Moolenaarau BufNewFile,BufRead *.smt,*.smith setf smith 1709071d4279SBram Moolenaar 1710d68071d8SBram Moolenaar" Snobol4 and spitbol 1711d68071d8SBram Moolenaarau BufNewFile,BufRead *.sno,*.spt setf snobol4 1712071d4279SBram Moolenaar 1713071d4279SBram Moolenaar" SNMP MIB files 1714071d4279SBram Moolenaarau BufNewFile,BufRead *.mib,*.my setf mib 1715071d4279SBram Moolenaar 1716071d4279SBram Moolenaar" Snort Configuration 171734e0bfaaSBram Moolenaarau BufNewFile,BufRead *.hog,snort.conf,vision.conf setf hog 1718d09a206eSBram Moolenaarau BufNewFile,BufRead *.rules call dist#ft#FTRules() 171934e0bfaaSBram Moolenaar 172017d015b2SBram Moolenaar" SPARQL queries 172117d015b2SBram Moolenaarau BufNewFile,BufRead *.rq,*.sparql setf sparql 172217d015b2SBram Moolenaar 1723071d4279SBram Moolenaar" Spec (Linux RPM) 1724071d4279SBram Moolenaarau BufNewFile,BufRead *.spec setf spec 1725071d4279SBram Moolenaar 1726071d4279SBram Moolenaar" Speedup (AspenTech plant simulator) 1727071d4279SBram Moolenaarau BufNewFile,BufRead *.speedup,*.spdata,*.spd setf spup 1728071d4279SBram Moolenaar 1729071d4279SBram Moolenaar" Slice 1730071d4279SBram Moolenaarau BufNewFile,BufRead *.ice setf slice 1731071d4279SBram Moolenaar 1732071d4279SBram Moolenaar" Spice 1733071d4279SBram Moolenaarau BufNewFile,BufRead *.sp,*.spice setf spice 1734071d4279SBram Moolenaar 1735071d4279SBram Moolenaar" Spyce 1736071d4279SBram Moolenaarau BufNewFile,BufRead *.spy,*.spi setf spyce 1737071d4279SBram Moolenaar 1738071d4279SBram Moolenaar" Squid 1739071d4279SBram Moolenaarau BufNewFile,BufRead squid.conf setf squid 1740071d4279SBram Moolenaar 1741d4755bb0SBram Moolenaar" SQL for Oracle Designer 1742d4755bb0SBram Moolenaarau BufNewFile,BufRead *.tyb,*.typ,*.tyc,*.pkb,*.pks setf sql 1743d4755bb0SBram Moolenaar 1744d4755bb0SBram Moolenaar" SQL 1745d09a206eSBram Moolenaarau BufNewFile,BufRead *.sql call dist#ft#SQL() 1746071d4279SBram Moolenaar 1747071d4279SBram Moolenaar" SQLJ 1748071d4279SBram Moolenaarau BufNewFile,BufRead *.sqlj setf sqlj 1749071d4279SBram Moolenaar 1750071d4279SBram Moolenaar" SQR 1751071d4279SBram Moolenaarau BufNewFile,BufRead *.sqr,*.sqi setf sqr 1752071d4279SBram Moolenaar 1753071d4279SBram Moolenaar" OpenSSH configuration 1754071d4279SBram Moolenaarau BufNewFile,BufRead ssh_config,*/.ssh/config setf sshconfig 1755da84ac2aSBram Moolenaarau BufNewFile,BufRead */etc/ssh/ssh_config.d/*.conf setf sshconfig 1756071d4279SBram Moolenaar 1757071d4279SBram Moolenaar" OpenSSH server configuration 1758071d4279SBram Moolenaarau BufNewFile,BufRead sshd_config setf sshdconfig 1759da84ac2aSBram Moolenaarau BufNewFile,BufRead */etc/ssh/sshd_config.d/*.conf setf sshdconfig 1760071d4279SBram Moolenaar 1761c6249bb2SBram Moolenaar" Stata 176294237495SBram Moolenaarau BufNewFile,BufRead *.ado,*.do,*.imata,*.mata setf stata 176394237495SBram Moolenaar" Also *.class, but not when it's a Java bytecode file 176494237495SBram Moolenaarau BufNewFile,BufRead *.class 176594237495SBram Moolenaar \ if getline(1) !~ "^\xca\xfe\xba\xbe" | setf stata | endif 1766c6249bb2SBram Moolenaar 1767c6249bb2SBram Moolenaar" SMCL 1768c6249bb2SBram Moolenaarau BufNewFile,BufRead *.hlp,*.ihlp,*.smcl setf smcl 1769c6249bb2SBram Moolenaar 1770071d4279SBram Moolenaar" Stored Procedures 1771071d4279SBram Moolenaarau BufNewFile,BufRead *.stp setf stp 1772071d4279SBram Moolenaar 1773071d4279SBram Moolenaar" Standard ML 1774071d4279SBram Moolenaarau BufNewFile,BufRead *.sml setf sml 1775071d4279SBram Moolenaar 1776aba8857aSBram Moolenaar" Sratus VOS command macro 1777aba8857aSBram Moolenaarau BufNewFile,BufRead *.cm setf voscm 1778aba8857aSBram Moolenaar 17790d76683eSBram Moolenaar" Swift 17800d76683eSBram Moolenaarau BufNewFile,BufRead *.swift setf swift 17810d76683eSBram Moolenaarau BufNewFile,BufRead *.swift.gyb setf swiftgyb 17820d76683eSBram Moolenaar 17830d76683eSBram Moolenaar" Swift Intermediate Language 17840d76683eSBram Moolenaarau BufNewFile,BufRead *.sil setf sil 17850d76683eSBram Moolenaar 178642eeac35SBram Moolenaar" Sysctl 1787adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/sysctl.conf,*/etc/sysctl.d/*.conf setf sysctl 178842eeac35SBram Moolenaar 178960cce2fbSBram Moolenaar" Systemd unit files 1790ef6d86c1SBram Moolenaarau BufNewFile,BufRead */systemd/*.{automount,dnssd,link,mount,netdev,network,nspawn,path,service,slice,socket,swap,target,timer} setf systemd 179163b74a83SBram Moolenaar" Systemd overrides 1792ef6d86c1SBram Moolenaarau BufNewFile,BufRead */etc/systemd/*.conf.d/*.conf setf systemd 17933b922f11SBram Moolenaarau BufNewFile,BufRead */etc/systemd/system/*.d/*.conf setf systemd 17943b922f11SBram Moolenaarau BufNewFile,BufRead */.config/systemd/user/*.d/*.conf setf systemd 179563b74a83SBram Moolenaar" Systemd temp files 17963b922f11SBram Moolenaarau BufNewFile,BufRead */etc/systemd/system/*.d/.#* setf systemd 1797512fe833SBram Moolenaarau BufNewFile,BufRead */etc/systemd/system/.#* setf systemd 17983b922f11SBram Moolenaarau BufNewFile,BufRead */.config/systemd/user/*.d/.#* setf systemd 1799512fe833SBram Moolenaarau BufNewFile,BufRead */.config/systemd/user/.#* setf systemd 180060cce2fbSBram Moolenaar 18015c73622aSBram Moolenaar" Synopsys Design Constraints 18025c73622aSBram Moolenaarau BufNewFile,BufRead *.sdc setf sdc 18035c73622aSBram Moolenaar 18041cd871b5SBram Moolenaar" Sudoers 1805adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/sudoers,sudoers.tmp setf sudoers 18061cd871b5SBram Moolenaar 180700a927d6SBram Moolenaar" SVG (Scalable Vector Graphics) 180800a927d6SBram Moolenaarau BufNewFile,BufRead *.svg setf svg 180900a927d6SBram Moolenaar 1810a5792f58SBram Moolenaar" Tads (or Nroff or Perl test file) 1811071d4279SBram Moolenaarau BufNewFile,BufRead *.t 1812d09a206eSBram Moolenaar \ if !dist#ft#FTnroff() && !dist#ft#FTperl() | setf tads | endif 1813071d4279SBram Moolenaar 1814071d4279SBram Moolenaar" Tags 1815071d4279SBram Moolenaarau BufNewFile,BufRead tags setf tags 1816071d4279SBram Moolenaar 1817071d4279SBram Moolenaar" TAK 1818071d4279SBram Moolenaarau BufNewFile,BufRead *.tak setf tak 1819071d4279SBram Moolenaar 18205c73622aSBram Moolenaar" Task 18215c73622aSBram Moolenaarau BufRead,BufNewFile {pending,completed,undo}.data setf taskdata 18225c73622aSBram Moolenaarau BufRead,BufNewFile *.task setf taskedit 18235c73622aSBram Moolenaar 1824a5792f58SBram Moolenaar" Tcl (JACL too) 182578aa5ffeSBram Moolenaarau BufNewFile,BufRead *.tcl,*.tm,*.tk,*.itcl,*.itk,*.jacl,.tclshrc,.wishrc setf tcl 1826071d4279SBram Moolenaar 1827071d4279SBram Moolenaar" TealInfo 1828071d4279SBram Moolenaarau BufNewFile,BufRead *.tli setf tli 1829071d4279SBram Moolenaar 1830071d4279SBram Moolenaar" Telix Salt 1831071d4279SBram Moolenaarau BufNewFile,BufRead *.slt setf tsalt 1832071d4279SBram Moolenaar 18335e6a7aa2SBram Moolenaar" Tera Term Language or Turtle 18345e6a7aa2SBram Moolenaarau BufRead,BufNewFile *.ttl 18355e6a7aa2SBram Moolenaar \ if getline(1) =~ '^@\?\(prefix\|base\)' | 18365e6a7aa2SBram Moolenaar \ setf turtle | 18375e6a7aa2SBram Moolenaar \ else | 18385e6a7aa2SBram Moolenaar \ setf teraterm | 18395e6a7aa2SBram Moolenaar \ endif 1840f9132810SBram Moolenaar 1841071d4279SBram Moolenaar" Terminfo 1842071d4279SBram Moolenaarau BufNewFile,BufRead *.ti setf terminfo 1843071d4279SBram Moolenaar 1844071d4279SBram Moolenaar" TeX 1845d042c56eSBram Moolenaarau BufNewFile,BufRead *.latex,*.sty,*.dtx,*.ltx,*.bbl setf tex 1846d09a206eSBram Moolenaarau BufNewFile,BufRead *.tex call dist#ft#FTtex() 1847d042c56eSBram Moolenaar 1848aba8857aSBram Moolenaar" ConTeXt 1849faebda8cSBram Moolenaarau BufNewFile,BufRead *.mkii,*.mkiv,*.mkvi,*.mkxl,*.mklx setf context 1850071d4279SBram Moolenaar 1851071d4279SBram Moolenaar" Texinfo 1852071d4279SBram Moolenaarau BufNewFile,BufRead *.texinfo,*.texi,*.txi setf texinfo 1853071d4279SBram Moolenaar 1854071d4279SBram Moolenaar" TeX configuration 1855071d4279SBram Moolenaarau BufNewFile,BufRead texmf.cnf setf texmf 1856071d4279SBram Moolenaar 1857071d4279SBram Moolenaar" Tidy config 185844aaf541SBram Moolenaarau BufNewFile,BufRead .tidyrc,tidyrc,tidy.conf setf tidy 1859071d4279SBram Moolenaar 1860071d4279SBram Moolenaar" TF mud client 1861071d4279SBram Moolenaarau BufNewFile,BufRead *.tf,.tfrc,tfrc setf tf 1862071d4279SBram Moolenaar 1863214641f7SBram Moolenaar" tmux configuration 1864036986f1SBram Moolenaarau BufNewFile,BufRead {.,}tmux*.conf setf tmux 1865214641f7SBram Moolenaar 1866b237ae7bSBram Moolenaar" TOML 1867b237ae7bSBram Moolenaarau BufNewFile,BufRead *.toml setf toml 1868b237ae7bSBram Moolenaar 1869009b2592SBram Moolenaar" TPP - Text Presentation Program 1870009b2592SBram Moolenaarau BufNewFile,BufReadPost *.tpp setf tpp 1871009b2592SBram Moolenaar 1872662db673SBram Moolenaar" Treetop 1873662db673SBram Moolenaarau BufRead,BufNewFile *.treetop setf treetop 1874662db673SBram Moolenaar 1875a5fac54aSBram Moolenaar" Trustees 1876a5fac54aSBram Moolenaarau BufNewFile,BufRead trustees.conf setf trustees 1877a5fac54aSBram Moolenaar 1878071d4279SBram Moolenaar" TSS - Geometry 1879071d4279SBram Moolenaarau BufNewFile,BufReadPost *.tssgm setf tssgm 1880071d4279SBram Moolenaar 1881071d4279SBram Moolenaar" TSS - Optics 1882071d4279SBram Moolenaarau BufNewFile,BufReadPost *.tssop setf tssop 1883071d4279SBram Moolenaar 1884071d4279SBram Moolenaar" TSS - Command Line (temporary) 1885071d4279SBram Moolenaarau BufNewFile,BufReadPost *.tsscl setf tsscl 1886071d4279SBram Moolenaar 18875b435d67SBram Moolenaar" TWIG files 18885b435d67SBram Moolenaarau BufNewFile,BufReadPost *.twig setf twig 18895b435d67SBram Moolenaar 1890c0d670ceSBram Moolenaar" Typescript or Qt translation file (which is XML) 1891c0d670ceSBram Moolenaarau BufNewFile,BufReadPost *.ts 1892c0d670ceSBram Moolenaar \ if getline(1) =~ '<?xml' | 1893c0d670ceSBram Moolenaar \ setf xml | 1894c0d670ceSBram Moolenaar \ else | 1895c0d670ceSBram Moolenaar \ setf typescript | 1896c0d670ceSBram Moolenaar \ endif 18971a4dce7cSBram Moolenaar 189892852ceeSBram Moolenaar" TypeScript with React 189992852ceeSBram Moolenaarau BufNewFile,BufRead *.tsx setf typescriptreact 190092852ceeSBram Moolenaar 1901071d4279SBram Moolenaar" Motif UIT/UIL files 1902071d4279SBram Moolenaarau BufNewFile,BufRead *.uit,*.uil setf uil 1903071d4279SBram Moolenaar 19040dc065eeSBram Moolenaar" Udev conf 1905adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/udev/udev.conf setf udevconf 19060dc065eeSBram Moolenaar 19070dc065eeSBram Moolenaar" Udev permissions 1908adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/udev/permissions.d/*.permissions setf udevperm 19090dc065eeSBram Moolenaar" 19100dc065eeSBram Moolenaar" Udev symlinks config 1911adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/udev/cdsymlinks.conf setf sh 19120dc065eeSBram Moolenaar 1913071d4279SBram Moolenaar" UnrealScript 1914071d4279SBram Moolenaarau BufNewFile,BufRead *.uc setf uc 1915071d4279SBram Moolenaar 191642eeac35SBram Moolenaar" Updatedb 1917adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/updatedb.conf setf updatedb 191842eeac35SBram Moolenaar 1919662db673SBram Moolenaar" Upstart (init(8)) config files 192034700a6aSBram Moolenaarau BufNewFile,BufRead */usr/share/upstart/*.conf setf upstart 192134700a6aSBram Moolenaarau BufNewFile,BufRead */usr/share/upstart/*.override setf upstart 192234700a6aSBram Moolenaarau BufNewFile,BufRead */etc/init/*.conf,*/etc/init/*.override setf upstart 192334700a6aSBram Moolenaarau BufNewFile,BufRead */.init/*.conf,*/.init/*.override setf upstart 192434700a6aSBram Moolenaarau BufNewFile,BufRead */.config/upstart/*.conf setf upstart 192534700a6aSBram Moolenaarau BufNewFile,BufRead */.config/upstart/*.override setf upstart 1926662db673SBram Moolenaar 1927c1e37901SBram Moolenaar" Vera 1928c1e37901SBram Moolenaarau BufNewFile,BufRead *.vr,*.vri,*.vrh setf vera 1929c1e37901SBram Moolenaar 1930071d4279SBram Moolenaar" Verilog HDL 1931071d4279SBram Moolenaarau BufNewFile,BufRead *.v setf verilog 1932071d4279SBram Moolenaar 1933ae5bce1cSBram Moolenaar" Verilog-AMS HDL 1934ae5bce1cSBram Moolenaarau BufNewFile,BufRead *.va,*.vams setf verilogams 1935ae5bce1cSBram Moolenaar 193692dff182SBram Moolenaar" SystemVerilog 1937251835e1SBram Moolenaarau BufNewFile,BufRead *.sv,*.svh setf systemverilog 193892dff182SBram Moolenaar 1939071d4279SBram Moolenaar" VHDL 194040d235e7SBram Moolenaarau BufNewFile,BufRead *.hdl,*.vhd,*.vhdl,*.vbe,*.vst,*.vho setf vhdl 1941071d4279SBram Moolenaar 1942071d4279SBram Moolenaar" Vim script 1943433f7c88SBram Moolenaarau BufNewFile,BufRead *.vim,*.vba,.exrc,_exrc setf vim 1944071d4279SBram Moolenaar 1945071d4279SBram Moolenaar" Viminfo file 1946071d4279SBram Moolenaarau BufNewFile,BufRead .viminfo,_viminfo setf viminfo 1947071d4279SBram Moolenaar 19485c73622aSBram Moolenaar" Virata Config Script File or Drupal module 19495c73622aSBram Moolenaarau BufRead,BufNewFile *.hw,*.module,*.pkg 19505c73622aSBram Moolenaar \ if getline(1) =~ '<?php' | 19515c73622aSBram Moolenaar \ setf php | 19525c73622aSBram Moolenaar \ else | 19535c73622aSBram Moolenaar \ setf virata | 19545c73622aSBram Moolenaar \ endif 1955071d4279SBram Moolenaar 1956071d4279SBram Moolenaar" Visual Basic (also uses *.bas) or FORM 1957d09a206eSBram Moolenaarau BufNewFile,BufRead *.frm call dist#ft#FTVB("form") 1958071d4279SBram Moolenaar 1959071d4279SBram Moolenaar" SaxBasic is close to Visual Basic 1960071d4279SBram Moolenaarau BufNewFile,BufRead *.sba setf vb 1961071d4279SBram Moolenaar 1962071d4279SBram Moolenaar" Vgrindefs file 1963071d4279SBram Moolenaarau BufNewFile,BufRead vgrindefs setf vgrindefs 1964071d4279SBram Moolenaar 1965071d4279SBram Moolenaar" VRML V1.0c 1966071d4279SBram Moolenaarau BufNewFile,BufRead *.wrl setf vrml 1967071d4279SBram Moolenaar 1968dbc28022SBram Moolenaar" Vroom (vim testing and executable documentation) 1969dbc28022SBram Moolenaarau BufNewFile,BufRead *.vroom setf vroom 1970dbc28022SBram Moolenaar 1971c2734051SBram Moolenaar" Vue.js Single File Component 1972c2734051SBram Moolenaarau BufNewFile,BufRead *.vue setf vue 1973071d4279SBram Moolenaar 1974d2855f54SBram Moolenaar" WebAssembly 1975d2855f54SBram Moolenaarau BufNewFile,BufRead *.wast,*.wat setf wast 1976d2855f54SBram Moolenaar 1977c2734051SBram Moolenaar" Webmacro 1978c2734051SBram Moolenaarau BufNewFile,BufRead *.wm setf webmacro 1979c2734051SBram Moolenaar 1980071d4279SBram Moolenaar" Wget config 1981071d4279SBram Moolenaarau BufNewFile,BufRead .wgetrc,wgetrc setf wget 1982071d4279SBram Moolenaar 1983071d4279SBram Moolenaar" Website MetaLanguage 1984071d4279SBram Moolenaarau BufNewFile,BufRead *.wml setf wml 1985071d4279SBram Moolenaar 1986071d4279SBram Moolenaar" Winbatch 1987071d4279SBram Moolenaarau BufNewFile,BufRead *.wbt setf winbatch 1988071d4279SBram Moolenaar 19891e60789fSBram Moolenaar" WSML 19901e60789fSBram Moolenaarau BufNewFile,BufRead *.wsml setf wsml 19911e60789fSBram Moolenaar 199201164a65SBram Moolenaar" WPL 199301164a65SBram Moolenaarau BufNewFile,BufRead *.wpl setf xml 199401164a65SBram Moolenaar 1995071d4279SBram Moolenaar" WvDial 1996071d4279SBram Moolenaarau BufNewFile,BufRead wvdial.conf,.wvdialrc setf wvdial 1997071d4279SBram Moolenaar 1998071d4279SBram Moolenaar" CVS RC file 1999071d4279SBram Moolenaarau BufNewFile,BufRead .cvsrc setf cvsrc 2000071d4279SBram Moolenaar 2001071d4279SBram Moolenaar" CVS commit file 2002071d4279SBram Moolenaarau BufNewFile,BufRead cvs\d\+ setf cvs 2003071d4279SBram Moolenaar 2004071d4279SBram Moolenaar" WEB (*.web is also used for Winbatch: Guess, based on expecting "%" comment 2005071d4279SBram Moolenaar" lines in a WEB file). 2006071d4279SBram Moolenaarau BufNewFile,BufRead *.web 2007071d4279SBram Moolenaar \ if getline(1)[0].getline(2)[0].getline(3)[0].getline(4)[0].getline(5)[0] =~ "%" | 2008071d4279SBram Moolenaar \ setf web | 2009071d4279SBram Moolenaar \ else | 2010071d4279SBram Moolenaar \ setf winbatch | 2011071d4279SBram Moolenaar \ endif 2012071d4279SBram Moolenaar 2013071d4279SBram Moolenaar" Windows Scripting Host and Windows Script Component 2014071d4279SBram Moolenaarau BufNewFile,BufRead *.ws[fc] setf wsh 2015071d4279SBram Moolenaar 2016c81e5e79SBram Moolenaar" XHTML 2017c81e5e79SBram Moolenaarau BufNewFile,BufRead *.xhtml,*.xht setf xhtml 2018c81e5e79SBram Moolenaar 20196e649224SBram Moolenaar" X Pixmap (dynamically sets colors, this used to trigger on BufEnter to make 20206e649224SBram Moolenaar" it work better, but that breaks setting 'filetype' manually) 20216e649224SBram Moolenaarau BufNewFile,BufRead *.xpm 2022071d4279SBram Moolenaar \ if getline(1) =~ "XPM2" | 2023071d4279SBram Moolenaar \ setf xpm2 | 2024071d4279SBram Moolenaar \ else | 2025071d4279SBram Moolenaar \ setf xpm | 2026071d4279SBram Moolenaar \ endif 20276e649224SBram Moolenaarau BufNewFile,BufRead *.xpm2 setf xpm2 2028071d4279SBram Moolenaar 2029071d4279SBram Moolenaar" XFree86 config 2030071d4279SBram Moolenaarau BufNewFile,BufRead XF86Config 2031071d4279SBram Moolenaar \ if getline(1) =~ '\<XConfigurator\>' | 20328e5af3e5SBram Moolenaar \ let b:xf86conf_xfree86_version = 3 | 2033071d4279SBram Moolenaar \ endif | 2034071d4279SBram Moolenaar \ setf xf86conf 2035adc2182cSBram Moolenaarau BufNewFile,BufRead */xorg.conf.d/*.conf 2036adc2182cSBram Moolenaar \ let b:xf86conf_xfree86_version = 4 | 2037adc2182cSBram Moolenaar \ setf xf86conf 2038071d4279SBram Moolenaar 2039071d4279SBram Moolenaar" Xorg config 2040adc2182cSBram Moolenaarau BufNewFile,BufRead xorg.conf,xorg.conf-4 let b:xf86conf_xfree86_version = 4 | setf xf86conf 2041071d4279SBram Moolenaar 204242eeac35SBram Moolenaar" Xinetd conf 2043adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/xinetd.conf setf xinetd 204442eeac35SBram Moolenaar 2045071d4279SBram Moolenaar" XS Perl extension interface language 2046071d4279SBram Moolenaarau BufNewFile,BufRead *.xs setf xs 2047071d4279SBram Moolenaar 2048071d4279SBram Moolenaar" X resources file 2049071d4279SBram Moolenaarau BufNewFile,BufRead .Xdefaults,.Xpdefaults,.Xresources,xdm-config,*.ad setf xdefaults 2050071d4279SBram Moolenaar 2051071d4279SBram Moolenaar" Xmath 2052071d4279SBram Moolenaarau BufNewFile,BufRead *.msc,*.msf setf xmath 2053071d4279SBram Moolenaarau BufNewFile,BufRead *.ms 2054d09a206eSBram Moolenaar \ if !dist#ft#FTnroff() | setf xmath | endif 2055071d4279SBram Moolenaar 2056aba8857aSBram Moolenaar" XML specific variants: docbk and xbl 2057d09a206eSBram Moolenaarau BufNewFile,BufRead *.xml call dist#ft#FTxml() 2058071d4279SBram Moolenaar 2059071d4279SBram Moolenaar" XMI (holding UML models) is also XML 2060071d4279SBram Moolenaarau BufNewFile,BufRead *.xmi setf xml 2061071d4279SBram Moolenaar 2062071d4279SBram Moolenaar" CSPROJ files are Visual Studio.NET's XML-based project config files 2063071d4279SBram Moolenaarau BufNewFile,BufRead *.csproj,*.csproj.user setf xml 2064071d4279SBram Moolenaar 2065071d4279SBram Moolenaar" Qt Linguist translation source and Qt User Interface Files are XML 20663a4c53baSBram Moolenaar" However, for .ts Typescript is more common. 20673a4c53baSBram Moolenaarau BufNewFile,BufRead *.ui setf xml 2068071d4279SBram Moolenaar 2069c81e5e79SBram Moolenaar" TPM's are RDF-based descriptions of TeX packages (Nikolai Weibull) 2070c81e5e79SBram Moolenaarau BufNewFile,BufRead *.tpm setf xml 2071c81e5e79SBram Moolenaar 20720dc065eeSBram Moolenaar" Xdg menus 2073adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/xdg/menus/*.menu setf xml 20740dc065eeSBram Moolenaar 2075aba8857aSBram Moolenaar" ATI graphics driver configuration 2076aba8857aSBram Moolenaarau BufNewFile,BufRead fglrxrc setf xml 2077aba8857aSBram Moolenaar 2078d473c8c1SBram Moolenaar" Web Services Description Language (WSDL) 2079d473c8c1SBram Moolenaarau BufNewFile,BufRead *.wsdl setf xml 2080d473c8c1SBram Moolenaar 2081aba8857aSBram Moolenaar" XLIFF (XML Localisation Interchange File Format) is also XML 2082aba8857aSBram Moolenaarau BufNewFile,BufRead *.xlf setf xml 2083aba8857aSBram Moolenaarau BufNewFile,BufRead *.xliff setf xml 2084aba8857aSBram Moolenaar 208584f7235bSBram Moolenaar" XML User Interface Language 208684f7235bSBram Moolenaarau BufNewFile,BufRead *.xul setf xml 208784f7235bSBram Moolenaar 2088aba8857aSBram Moolenaar" X11 xmodmap (also see below) 2089aba8857aSBram Moolenaarau BufNewFile,BufRead *Xmodmap setf xmodmap 2090aba8857aSBram Moolenaar 2091ce0842a6SBram Moolenaar" Xquery 2092ce0842a6SBram Moolenaarau BufNewFile,BufRead *.xq,*.xql,*.xqm,*.xquery,*.xqy setf xquery 2093ce0842a6SBram Moolenaar 2094071d4279SBram Moolenaar" XSD 2095071d4279SBram Moolenaarau BufNewFile,BufRead *.xsd setf xsd 2096071d4279SBram Moolenaar 2097071d4279SBram Moolenaar" Xslt 2098071d4279SBram Moolenaarau BufNewFile,BufRead *.xsl,*.xslt setf xslt 2099071d4279SBram Moolenaar 2100071d4279SBram Moolenaar" Yacc 21010858917eSBram Moolenaarau BufNewFile,BufRead *.yy,*.yxx,*.y++ setf yacc 210242eeac35SBram Moolenaar 210342eeac35SBram Moolenaar" Yacc or racc 2104d09a206eSBram Moolenaarau BufNewFile,BufRead *.y call dist#ft#FTy() 2105071d4279SBram Moolenaar 2106da1c11c6SBram Moolenaar" Yaml 2107da1c11c6SBram Moolenaarau BufNewFile,BufRead *.yaml,*.yml setf yaml 2108da1c11c6SBram Moolenaar 2109da1c11c6SBram Moolenaar" Raml 2110da1c11c6SBram Moolenaarau BufNewFile,BufRead *.raml setf raml 2111071d4279SBram Moolenaar 21125302d9ebSBram Moolenaar" yum conf (close enough to dosini) 21135302d9ebSBram Moolenaarau BufNewFile,BufRead */etc/yum.conf setf dosini 21145302d9ebSBram Moolenaar 21151aeaf8c0SBram Moolenaar" Zimbu 21161aeaf8c0SBram Moolenaarau BufNewFile,BufRead *.zu setf zimbu 2117ed32d942SBram Moolenaar" Zimbu Templates 2118ed32d942SBram Moolenaarau BufNewFile,BufRead *.zut setf zimbutempl 21191aeaf8c0SBram Moolenaar 2120899dddf8SBram Moolenaar" Zope 2121899dddf8SBram Moolenaar" dtml (zope dynamic template markup language), pt (zope page template), 2122899dddf8SBram Moolenaar" cpt (zope form controller page template) 2123d09a206eSBram Moolenaarau BufNewFile,BufRead *.dtml,*.pt,*.cpt call dist#ft#FThtml() 2124899dddf8SBram Moolenaar" zsql (zope sql method) 2125d09a206eSBram Moolenaarau BufNewFile,BufRead *.zsql call dist#ft#SQL() 2126899dddf8SBram Moolenaar 2127071d4279SBram Moolenaar" Z80 assembler asz80 2128071d4279SBram Moolenaarau BufNewFile,BufRead *.z8a setf z8a 2129071d4279SBram Moolenaar 2130071d4279SBram Moolenaaraugroup END 2131071d4279SBram Moolenaar 2132071d4279SBram Moolenaar 2133071d4279SBram Moolenaar" Source the user-specified filetype file, for backwards compatibility with 2134071d4279SBram Moolenaar" Vim 5.x. 21354317d9b4SBram Moolenaarif exists("myfiletypefile") && filereadable(expand(myfiletypefile)) 2136071d4279SBram Moolenaar execute "source " . myfiletypefile 2137071d4279SBram Moolenaarendif 2138071d4279SBram Moolenaar 2139071d4279SBram Moolenaar 2140071d4279SBram Moolenaar" Check for "*" after loading myfiletypefile, so that scripts.vim is only used 2141071d4279SBram Moolenaar" when there are no matching file name extensions. 2142071d4279SBram Moolenaar" Don't do this for compressed files. 2143071d4279SBram Moolenaaraugroup filetypedetect 2144071d4279SBram Moolenaarau BufNewFile,BufRead * 2145071d4279SBram Moolenaar \ if !did_filetype() && expand("<amatch>") !~ g:ft_ignore_pat 2146071d4279SBram Moolenaar \ | runtime! scripts.vim | endif 2147071d4279SBram Moolenaarau StdinReadPost * if !did_filetype() | runtime! scripts.vim | endif 2148071d4279SBram Moolenaar 2149071d4279SBram Moolenaar 2150071d4279SBram Moolenaar" Extra checks for when no filetype has been detected now. Mostly used for 2151071d4279SBram Moolenaar" patterns that end in "*". E.g., "zsh*" matches "zsh.vim", but that's a Vim 2152071d4279SBram Moolenaar" script file. 21534317d9b4SBram Moolenaar" Most of these should call s:StarSetf() to avoid names ending in .gz and the 21544317d9b4SBram Moolenaar" like are used. 2155071d4279SBram Moolenaar 2156f0b03c4eSBram Moolenaar" More Apache style config files 2157f0b03c4eSBram Moolenaarau BufNewFile,BufRead */etc/proftpd/*.conf*,*/etc/proftpd/conf.*/* call s:StarSetf('apachestyle') 2158723dd946SBram Moolenaarau BufNewFile,BufRead proftpd.conf* call s:StarSetf('apachestyle') 2159f0b03c4eSBram Moolenaar 2160adc2182cSBram Moolenaar" More Apache config files 2161adc2182cSBram Moolenaarau BufNewFile,BufRead access.conf*,apache.conf*,apache2.conf*,httpd.conf*,srm.conf* call s:StarSetf('apache') 2162770ddbe1SZdenek Dohnalau BufNewFile,BufRead */etc/apache2/*.conf*,*/etc/apache2/conf.*/*,*/etc/apache2/mods-*/*,*/etc/apache2/sites-*/*,*/etc/httpd/conf.*/*,*/etc/httpd/mods-*/*,*/etc/httpd/sites-*/*,*/etc/httpd/conf.d/*.conf* call s:StarSetf('apache') 2163c236c16dSBram Moolenaar 2164bfd8fc05SBram Moolenaar" Asterisk config file 2165bfd8fc05SBram Moolenaarau BufNewFile,BufRead *asterisk/*.conf* call s:StarSetf('asterisk') 2166433f7c88SBram Moolenaarau BufNewFile,BufRead *asterisk*/*voicemail.conf* call s:StarSetf('asteriskvm') 2167bfd8fc05SBram Moolenaar 2168c81e5e79SBram Moolenaar" Bazaar version control 2169c81e5e79SBram Moolenaarau BufNewFile,BufRead bzr_log.* setf bzr 2170c81e5e79SBram Moolenaar 217139170e2dSBram Moolenaar" Bazel build file 217239170e2dSBram Moolenaarif !has("fname_case") 21734488f5a5SBram Moolenaar au BufNewFile,BufRead *.BUILD,BUILD setf bzl 217439170e2dSBram Moolenaarendif 217539170e2dSBram Moolenaar 2176071d4279SBram Moolenaar" BIND zone 2177fa1d140aSBram Moolenaarau BufNewFile,BufRead */named/db.*,*/bind/db.* call s:StarSetf('bindzone') 2178071d4279SBram Moolenaar 2179dcbab75dSBram Moolenaarau BufNewFile,BufRead cabal.project.* call s:StarSetf('cabalproject') 2180dcbab75dSBram Moolenaar 21818e5af3e5SBram Moolenaar" Calendar 21828e5af3e5SBram Moolenaarau BufNewFile,BufRead */.calendar/*, 21838e5af3e5SBram Moolenaar \*/share/calendar/*/calendar.*,*/share/calendar/calendar.* 21848e5af3e5SBram Moolenaar \ call s:StarSetf('calendar') 21858e5af3e5SBram Moolenaar 2186071d4279SBram Moolenaar" Changelog 21874317d9b4SBram Moolenaarau BufNewFile,BufRead [cC]hange[lL]og* 21884317d9b4SBram Moolenaar \ if getline(1) =~ '; urgency=' 21894317d9b4SBram Moolenaar \| call s:StarSetf('debchangelog') 21904317d9b4SBram Moolenaar \|else 21914317d9b4SBram Moolenaar \| call s:StarSetf('changelog') 21924317d9b4SBram Moolenaar \|endif 2193071d4279SBram Moolenaar 2194071d4279SBram Moolenaar" Crontab 2195adc2182cSBram Moolenaarau BufNewFile,BufRead crontab,crontab.*,*/etc/cron.d/* call s:StarSetf('crontab') 2196d2cec5b0SBram Moolenaar 21978e5af3e5SBram Moolenaar" dnsmasq(8) configuration 21988e5af3e5SBram Moolenaarau BufNewFile,BufRead */etc/dnsmasq.d/* call s:StarSetf('dnsmasq') 21998e5af3e5SBram Moolenaar 2200071d4279SBram Moolenaar" Dracula 22014317d9b4SBram Moolenaarau BufNewFile,BufRead drac.* call s:StarSetf('dracula') 2202071d4279SBram Moolenaar 2203071d4279SBram Moolenaar" Fvwm 2204c81e5e79SBram Moolenaarau BufNewFile,BufRead */.fvwm/* call s:StarSetf('fvwm') 2205071d4279SBram Moolenaarau BufNewFile,BufRead *fvwmrc*,*fvwm95*.hook 22064317d9b4SBram Moolenaar \ let b:fvwm_version = 1 | call s:StarSetf('fvwm') 2207071d4279SBram Moolenaarau BufNewFile,BufRead *fvwm2rc* 22084317d9b4SBram Moolenaar \ if expand("<afile>:e") == "m4" 22094317d9b4SBram Moolenaar \| call s:StarSetf('fvwm2m4') 22104317d9b4SBram Moolenaar \|else 22114317d9b4SBram Moolenaar \| let b:fvwm_version = 2 | call s:StarSetf('fvwm') 22124317d9b4SBram Moolenaar \|endif 2213071d4279SBram Moolenaar 22145c73622aSBram Moolenaar" Gedcom 22158e5af3e5SBram Moolenaarau BufNewFile,BufRead */tmp/lltmp* call s:StarSetf('gedcom') 22165c73622aSBram Moolenaar 2217723dd946SBram Moolenaar" Git 2218723dd946SBram Moolenaarau BufNewFile,BufRead */.gitconfig.d/*,/etc/gitconfig.d/* call s:StarSetf('gitconfig') 2219723dd946SBram Moolenaar 2220723dd946SBram Moolenaar" Gitolite 2221723dd946SBram Moolenaarau BufNewFile,BufRead */gitolite-admin/conf/* call s:StarSetf('gitolite') 2222723dd946SBram Moolenaar 2223071d4279SBram Moolenaar" GTK RC 22244317d9b4SBram Moolenaarau BufNewFile,BufRead .gtkrc*,gtkrc* call s:StarSetf('gtkrc') 2225071d4279SBram Moolenaar 2226071d4279SBram Moolenaar" Jam 22274317d9b4SBram Moolenaarau BufNewFile,BufRead Prl*.*,JAM*.* call s:StarSetf('jam') 2228071d4279SBram Moolenaar 2229071d4279SBram Moolenaar" Jargon 2230071d4279SBram Moolenaarau! BufNewFile,BufRead *jarg* 22314317d9b4SBram Moolenaar \ if getline(1).getline(2).getline(3).getline(4).getline(5) =~? 'THIS IS THE JARGON FILE' 22324317d9b4SBram Moolenaar \| call s:StarSetf('jargon') 22334317d9b4SBram Moolenaar \|endif 2234071d4279SBram Moolenaar 2235723dd946SBram Moolenaar" Java Properties resource file (note: doesn't catch font.properties.pl) 2236723dd946SBram Moolenaarau BufNewFile,BufRead *.properties_??_??_* call s:StarSetf('jproperties') 2237723dd946SBram Moolenaar 22388424a624SBram Moolenaar" Kconfig 22398424a624SBram Moolenaarau BufNewFile,BufRead Kconfig.* call s:StarSetf('kconfig') 22408424a624SBram Moolenaar 22418e5af3e5SBram Moolenaar" Lilo: Linux loader 22428e5af3e5SBram Moolenaarau BufNewFile,BufRead lilo.conf* call s:StarSetf('lilo') 22438e5af3e5SBram Moolenaar 224440af4e39SBram Moolenaar" Logcheck 2245adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/logcheck/*.d*/* call s:StarSetf('logcheck') 224640af4e39SBram Moolenaar 2247071d4279SBram Moolenaar" Makefile 22484317d9b4SBram Moolenaarau BufNewFile,BufRead [mM]akefile* call s:StarSetf('make') 2249071d4279SBram Moolenaar 2250071d4279SBram Moolenaar" Ruby Makefile 22514317d9b4SBram Moolenaarau BufNewFile,BufRead [rR]akefile* call s:StarSetf('ruby') 2252071d4279SBram Moolenaar 2253aba8857aSBram Moolenaar" Mail (also matches muttrc.vim, so this is below the other checks) 225401164a65SBram Moolenaarau BufNewFile,BufRead {neo,}mutt[[:alnum:]._-]\\\{6\} setf mail 2255aba8857aSBram Moolenaar 225642ebd066SBram Moolenaarau BufNewFile,BufRead reportbug-* call s:StarSetf('mail') 225742ebd066SBram Moolenaar 2258aba8857aSBram Moolenaar" Modconf 22598e5af3e5SBram Moolenaarau BufNewFile,BufRead */etc/modutils/* 22608e5af3e5SBram Moolenaar \ if executable(expand("<afile>")) != 1 22618e5af3e5SBram Moolenaar \| call s:StarSetf('modconf') 22628e5af3e5SBram Moolenaar \|endif 2263adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/modprobe.* call s:StarSetf('modconf') 2264aba8857aSBram Moolenaar 2265071d4279SBram Moolenaar" Mutt setup file 2266aba8857aSBram Moolenaarau BufNewFile,BufRead .mutt{ng,}rc*,*/.mutt{ng,}/mutt{ng,}rc* call s:StarSetf('muttrc') 22678aff23a1SBram Moolenaarau BufNewFile,BufRead mutt{ng,}rc*,Mutt{ng,}rc* call s:StarSetf('muttrc') 2268071d4279SBram Moolenaar 226901164a65SBram Moolenaar" Neomutt setup file 227001164a65SBram Moolenaarau BufNewFile,BufRead .neomuttrc*,*/.neomutt/neomuttrc* call s:StarSetf('neomuttrc') 227101164a65SBram Moolenaarau BufNewFile,BufRead neomuttrc*,Neomuttrc* call s:StarSetf('neomuttrc') 227201164a65SBram Moolenaar 2273071d4279SBram Moolenaar" Nroff macros 22744317d9b4SBram Moolenaarau BufNewFile,BufRead tmac.* call s:StarSetf('nroff') 2275071d4279SBram Moolenaar 227625de4c23SBram Moolenaar" OpenBSD hostname.if 227725de4c23SBram Moolenaarau BufNewFile,BufRead /etc/hostname.* call s:StarSetf('config') 227825de4c23SBram Moolenaar 227942eeac35SBram Moolenaar" Pam conf 2280adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/pam.d/* call s:StarSetf('pamconf') 228142eeac35SBram Moolenaar 2282071d4279SBram Moolenaar" Printcap and Termcap 2283071d4279SBram Moolenaarau BufNewFile,BufRead *printcap* 22844317d9b4SBram Moolenaar \ if !did_filetype() 22854317d9b4SBram Moolenaar \| let b:ptcap_type = "print" | call s:StarSetf('ptcap') 22864317d9b4SBram Moolenaar \|endif 2287071d4279SBram Moolenaarau BufNewFile,BufRead *termcap* 22884317d9b4SBram Moolenaar \ if !did_filetype() 22894317d9b4SBram Moolenaar \| let b:ptcap_type = "term" | call s:StarSetf('ptcap') 22904317d9b4SBram Moolenaar \|endif 2291071d4279SBram Moolenaar 22920187ca0bSBram Moolenaar" ReDIF 22930187ca0bSBram Moolenaar" Only used when the .rdf file was not detected to be XML. 2294d09a206eSBram Moolenaarau BufRead,BufNewFile *.rdf call dist#ft#Redif() 22950187ca0bSBram Moolenaar 22968e5af3e5SBram Moolenaar" Remind 22978e5af3e5SBram Moolenaarau BufNewFile,BufRead .reminders* call s:StarSetf('remind') 22988e5af3e5SBram Moolenaar 2299723dd946SBram Moolenaar" SGML catalog file 2300723dd946SBram Moolenaarau BufNewFile,BufRead sgml.catalog* call s:StarSetf('catalog') 2301723dd946SBram Moolenaar 2302409da842SBram Moolenaar" avoid doc files being recognized a shell files 2303409da842SBram Moolenaarau BufNewFile,BufRead */doc/{,.}bash[_-]completion{,.d,.sh}{,/*} setf text 2304409da842SBram Moolenaar 2305147e7d0cSBram Moolenaar" Shell scripts ending in a star 2306409da842SBram Moolenaarau BufNewFile,BufRead .bashrc*,.bash[_-]profile*,.bash[_-]logout*,.bash[_-]aliases*,bash-fc[-.]*,PKGBUILD*,APKBUILD*,*/{,.}bash[_-]completion{,.d,.sh}{,/*} call dist#ft#SetFileTypeSH("bash") 2307147e7d0cSBram Moolenaarau BufNewFile,BufRead .kshrc* call dist#ft#SetFileTypeSH("ksh") 2308147e7d0cSBram Moolenaarau BufNewFile,BufRead .profile* call dist#ft#SetFileTypeSH(getline(1)) 2309147e7d0cSBram Moolenaar 2310c143fa07SBram Moolenaar" Sudoers 2311c143fa07SBram Moolenaarau BufNewFile,BufRead */etc/sudoers.d/* call s:StarSetf('sudoers') 2312c143fa07SBram Moolenaar 2313147e7d0cSBram Moolenaar" tcsh scripts ending in a star 2314147e7d0cSBram Moolenaarau BufNewFile,BufRead .tcshrc* call dist#ft#SetFileTypeShell("tcsh") 2315147e7d0cSBram Moolenaar 2316147e7d0cSBram Moolenaar" csh scripts ending in a star 2317147e7d0cSBram Moolenaarau BufNewFile,BufRead .login*,.cshrc* call dist#ft#CSH() 2318147e7d0cSBram Moolenaar 2319e519eb41SEric Pruitt" tmux configuration with arbitrary extension 2320e519eb41SEric Pruittau BufNewFile,BufRead {.,}tmux*.conf* setf tmux 2321e519eb41SEric Pruitt 2322723dd946SBram Moolenaar" VHDL 2323723dd946SBram Moolenaarau BufNewFile,BufRead *.vhdl_[0-9]* call s:StarSetf('vhdl') 2324723dd946SBram Moolenaar 2325071d4279SBram Moolenaar" Vim script 23264317d9b4SBram Moolenaarau BufNewFile,BufRead *vimrc* call s:StarSetf('vim') 2327071d4279SBram Moolenaar 2328071d4279SBram Moolenaar" Subversion commit file 2329def9e829SBram Moolenaarau BufNewFile,BufRead svn-commit*.tmp setf svn 2330071d4279SBram Moolenaar 2331071d4279SBram Moolenaar" X resources file 23324317d9b4SBram Moolenaarau BufNewFile,BufRead Xresources*,*/app-defaults/*,*/Xresources/* call s:StarSetf('xdefaults') 2333071d4279SBram Moolenaar 2334071d4279SBram Moolenaar" XFree86 config 2335071d4279SBram Moolenaarau BufNewFile,BufRead XF86Config-4* 2336adc2182cSBram Moolenaar \ let b:xf86conf_xfree86_version = 4 | call s:StarSetf('xf86conf') 2337071d4279SBram Moolenaarau BufNewFile,BufRead XF86Config* 23384317d9b4SBram Moolenaar \ if getline(1) =~ '\<XConfigurator\>' 2339adc2182cSBram Moolenaar \| let b:xf86conf_xfree86_version = 3 23404317d9b4SBram Moolenaar \|endif 23414317d9b4SBram Moolenaar \|call s:StarSetf('xf86conf') 2342071d4279SBram Moolenaar 2343071d4279SBram Moolenaar" X11 xmodmap 23444317d9b4SBram Moolenaarau BufNewFile,BufRead *xmodmap* call s:StarSetf('xmodmap') 2345071d4279SBram Moolenaar 234642eeac35SBram Moolenaar" Xinetd conf 2347adc2182cSBram Moolenaarau BufNewFile,BufRead */etc/xinetd.d/* call s:StarSetf('xinetd') 234842eeac35SBram Moolenaar 23495302d9ebSBram Moolenaar" yum conf (close enough to dosini) 23505302d9ebSBram Moolenaarau BufNewFile,BufRead */etc/yum.repos.d/* call s:StarSetf('dosini') 23515302d9ebSBram Moolenaar 23522bf60b30SBram Moolenaar" Z-Shell script ending in a star 23532bf60b30SBram Moolenaarau BufNewFile,BufRead .zsh*,.zlog*,.zcompdump* call s:StarSetf('zsh') 23544317d9b4SBram Moolenaarau BufNewFile,BufRead zsh*,zlog* call s:StarSetf('zsh') 2355071d4279SBram Moolenaar 2356071d4279SBram Moolenaar 2357b6b046b2SBram Moolenaar" Plain text files, needs to be far down to not override others. This avoids 2358b6b046b2SBram Moolenaar" the "conf" type being used if there is a line starting with '#'. 2359868831f1SBram Moolenaarau BufNewFile,BufRead *.text,README setf text 2360868831f1SBram Moolenaar 2361868831f1SBram Moolenaar" Help files match *.txt but should have a last line that is a modeline. 2362868831f1SBram Moolenaarau BufNewFile,BufRead *.txt 2363868831f1SBram Moolenaar \ if getline('$') !~ 'vim:.*ft=help' 2364868831f1SBram Moolenaar \| setf text 2365868831f1SBram Moolenaar \| endif 2366b6b046b2SBram Moolenaar 236743b36a3bSBram Moolenaar 236843b36a3bSBram Moolenaar" Use the filetype detect plugins. They may overrule any of the previously 236943b36a3bSBram Moolenaar" detected filetypes. 237043b36a3bSBram Moolenaarruntime! ftdetect/*.vim 237143b36a3bSBram Moolenaar 237273b24708SBram Moolenaar" NOTE: The above command could have ended the filetypedetect autocmd group 23735dc6252dSBram Moolenaar" and started another one. Let's make sure it has ended to get to a consistent 237473b24708SBram Moolenaar" state. 237573b24708SBram Moolenaaraugroup END 237643b36a3bSBram Moolenaar 23773e54569bSBram Moolenaar" Generic configuration file. Use FALLBACK, it's just guessing! 237873b24708SBram Moolenaarau filetypedetect BufNewFile,BufRead,StdinReadPost * 2379071d4279SBram Moolenaar \ if !did_filetype() && expand("<amatch>") !~ g:ft_ignore_pat 2380071d4279SBram Moolenaar \ && (getline(1) =~ '^#' || getline(2) =~ '^#' || getline(3) =~ '^#' 2381071d4279SBram Moolenaar \ || getline(4) =~ '^#' || getline(5) =~ '^#') | 23823e54569bSBram Moolenaar \ setf FALLBACK conf | 2383071d4279SBram Moolenaar \ endif 2384071d4279SBram Moolenaar 2385071d4279SBram Moolenaar 2386071d4279SBram Moolenaar" If the GUI is already running, may still need to install the Syntax menu. 2387071d4279SBram Moolenaar" Don't do it when the 'M' flag is included in 'guioptions'. 2388071d4279SBram Moolenaarif has("menu") && has("gui_running") 2389071d4279SBram Moolenaar \ && !exists("did_install_syntax_menu") && &guioptions !~# "M" 2390071d4279SBram Moolenaar source <sfile>:p:h/menu.vim 2391071d4279SBram Moolenaarendif 2392071d4279SBram Moolenaar 239334e0bfaaSBram Moolenaar" Function called for testing all functions defined here. These are 239434e0bfaaSBram Moolenaar" script-local, thus need to be executed here. 239534e0bfaaSBram Moolenaar" Returns a string with error messages (hopefully empty). 239634e0bfaaSBram Moolenaarfunc! TestFiletypeFuncs(testlist) 239734e0bfaaSBram Moolenaar let output = '' 239834e0bfaaSBram Moolenaar for f in a:testlist 239934e0bfaaSBram Moolenaar try 240034e0bfaaSBram Moolenaar exe f 240134e0bfaaSBram Moolenaar catch 240234e0bfaaSBram Moolenaar let output = output . "\n" . f . ": " . v:exception 240334e0bfaaSBram Moolenaar endtry 240434e0bfaaSBram Moolenaar endfor 240534e0bfaaSBram Moolenaar return output 240634e0bfaaSBram Moolenaarendfunc 240734e0bfaaSBram Moolenaar 2408071d4279SBram Moolenaar" Restore 'cpoptions' 2409071d4279SBram Moolenaarlet &cpo = s:cpo_save 2410071d4279SBram Moolenaarunlet s:cpo_save 2411