1" Vim support file to detect file types 2" 3" Maintainer: Bram Moolenaar <[email protected]> 4" Last Change: 2021 Jun 13 5 6" Listen very carefully, I will say this only once 7if exists("did_load_filetypes") 8 finish 9endif 10let did_load_filetypes = 1 11 12" Line continuation is used here, remove 'C' from 'cpoptions' 13let s:cpo_save = &cpo 14set cpo&vim 15 16augroup filetypedetect 17 18" Ignored extensions 19if exists("*fnameescape") 20au BufNewFile,BufRead ?\+.orig,?\+.bak,?\+.old,?\+.new,?\+.dpkg-dist,?\+.dpkg-old,?\+.dpkg-new,?\+.dpkg-bak,?\+.rpmsave,?\+.rpmnew,?\+.pacsave,?\+.pacnew 21 \ exe "doau filetypedetect BufRead " . fnameescape(expand("<afile>:r")) 22au BufNewFile,BufRead *~ 23 \ let s:name = expand("<afile>") | 24 \ let s:short = substitute(s:name, '\~$', '', '') | 25 \ if s:name != s:short && s:short != "" | 26 \ exe "doau filetypedetect BufRead " . fnameescape(s:short) | 27 \ endif | 28 \ unlet! s:name s:short 29au BufNewFile,BufRead ?\+.in 30 \ if expand("<afile>:t") != "configure.in" | 31 \ exe "doau filetypedetect BufRead " . fnameescape(expand("<afile>:r")) | 32 \ endif 33elseif &verbose > 0 34 echomsg "Warning: some filetypes will not be recognized because this version of Vim does not have fnameescape()" 35endif 36 37" Pattern used to match file names which should not be inspected. 38" Currently finds compressed files. 39if !exists("g:ft_ignore_pat") 40 let g:ft_ignore_pat = '\.\(Z\|gz\|bz2\|zip\|tgz\)$' 41endif 42 43" Function used for patterns that end in a star: don't set the filetype if the 44" file name matches ft_ignore_pat. 45" When using this, the entry should probably be further down below with the 46" other StarSetf() calls. 47func! s:StarSetf(ft) 48 if expand("<amatch>") !~ g:ft_ignore_pat 49 exe 'setf ' . a:ft 50 endif 51endfunc 52 53" Vim help file 54au BufNewFile,BufRead $VIMRUNTIME/doc/*.txt setf help 55 56" Abaqus or Trasys 57au BufNewFile,BufRead *.inp call dist#ft#Check_inp() 58 59" 8th (Firth-derivative) 60au BufNewFile,BufRead *.8th setf 8th 61 62" A-A-P recipe 63au BufNewFile,BufRead *.aap setf aap 64 65" A2ps printing utility 66au BufNewFile,BufRead */etc/a2ps.cfg,*/etc/a2ps/*.cfg,a2psrc,.a2psrc setf a2ps 67 68" ABAB/4 69au BufNewFile,BufRead *.abap setf abap 70 71" ABC music notation 72au BufNewFile,BufRead *.abc setf abc 73 74" ABEL 75au BufNewFile,BufRead *.abl setf abel 76 77" AceDB 78au BufNewFile,BufRead *.wrm setf acedb 79 80" Ada (83, 9X, 95) 81au BufNewFile,BufRead *.adb,*.ads,*.ada setf ada 82if has("vms") 83 au BufNewFile,BufRead *.gpr,*.ada_m,*.adc setf ada 84else 85 au BufNewFile,BufRead *.gpr setf ada 86endif 87 88" AHDL 89au BufNewFile,BufRead *.tdf setf ahdl 90 91" AIDL 92au BufNewFile,BufRead *.aidl setf aidl 93 94" AMPL 95au BufNewFile,BufRead *.run setf ampl 96 97" Ant 98au BufNewFile,BufRead build.xml setf ant 99 100" Arduino 101au BufNewFile,BufRead *.ino,*.pde setf arduino 102 103" Apache config file 104au BufNewFile,BufRead .htaccess,*/etc/httpd/*.conf setf apache 105au BufNewFile,BufRead */etc/apache2/sites-*/*.com setf apache 106 107" XA65 MOS6510 cross assembler 108au BufNewFile,BufRead *.a65 setf a65 109 110" Applescript 111au BufNewFile,BufRead *.scpt setf applescript 112 113" Applix ELF 114au BufNewFile,BufRead *.am 115 \ if expand("<afile>") !~? 'Makefile.am\>' | setf elf | endif 116 117" ALSA configuration 118au BufNewFile,BufRead .asoundrc,*/usr/share/alsa/alsa.conf,*/etc/asound.conf setf alsaconf 119 120" Arc Macro Language 121au BufNewFile,BufRead *.aml setf aml 122 123" APT config file 124au BufNewFile,BufRead apt.conf setf aptconf 125au BufNewFile,BufRead */.aptitude/config setf aptconf 126au BufNewFile,BufRead */etc/apt/apt.conf.d/{[-_[:alnum:]]\+,[-_.[:alnum:]]\+.conf} setf aptconf 127 128" Arch Inventory file 129au BufNewFile,BufRead .arch-inventory,=tagging-method setf arch 130 131" ART*Enterprise (formerly ART-IM) 132au BufNewFile,BufRead *.art setf art 133 134" AsciiDoc 135au BufNewFile,BufRead *.asciidoc,*.adoc setf asciidoc 136 137" ASN.1 138au BufNewFile,BufRead *.asn,*.asn1 setf asn 139 140" Active Server Pages (with Visual Basic Script) 141au BufNewFile,BufRead *.asa 142 \ if exists("g:filetype_asa") | 143 \ exe "setf " . g:filetype_asa | 144 \ else | 145 \ setf aspvbs | 146 \ endif 147 148" Active Server Pages (with Perl or Visual Basic Script) 149au BufNewFile,BufRead *.asp 150 \ if exists("g:filetype_asp") | 151 \ exe "setf " . g:filetype_asp | 152 \ elseif getline(1) . getline(2) . getline(3) =~? "perlscript" | 153 \ setf aspperl | 154 \ else | 155 \ setf aspvbs | 156 \ endif 157 158" Grub (must be before catch *.lst) 159au BufNewFile,BufRead */boot/grub/menu.lst,*/boot/grub/grub.conf,*/etc/grub.conf setf grub 160 161" Assembly (all kinds) 162" *.lst is not pure assembly, it has two extra columns (address, byte codes) 163au BufNewFile,BufRead *.asm,*.[sS],*.[aA],*.mac,*.lst call dist#ft#FTasm() 164 165" Macro (VAX) 166au BufNewFile,BufRead *.mar setf vmasm 167 168" Atlas 169au BufNewFile,BufRead *.atl,*.as setf atlas 170 171" Atom is based on XML 172au BufNewFile,BufRead *.atom setf xml 173 174" Autoit v3 175au BufNewFile,BufRead *.au3 setf autoit 176 177" Autohotkey 178au BufNewFile,BufRead *.ahk setf autohotkey 179 180" Automake 181au BufNewFile,BufRead [mM]akefile.am,GNUmakefile.am setf automake 182 183" Autotest .at files are actually m4 184au BufNewFile,BufRead *.at setf m4 185 186" Avenue 187au BufNewFile,BufRead *.ave setf ave 188 189" Awk 190au BufNewFile,BufRead *.awk,*.gawk setf awk 191 192" B 193au BufNewFile,BufRead *.mch,*.ref,*.imp setf b 194 195" BASIC or Visual Basic 196au BufNewFile,BufRead *.bas call dist#ft#FTVB("basic") 197 198" Visual Basic Script (close to Visual Basic) or Visual Basic .NET 199au BufNewFile,BufRead *.vb,*.vbs,*.dsm,*.ctl setf vb 200 201" IBasic file (similar to QBasic) 202au BufNewFile,BufRead *.iba,*.ibi setf ibasic 203 204" FreeBasic file (similar to QBasic) 205au BufNewFile,BufRead *.fb,*.bi setf freebasic 206 207" Batch file for MSDOS. 208au BufNewFile,BufRead *.bat,*.sys setf dosbatch 209" *.cmd is close to a Batch file, but on OS/2 Rexx files also use *.cmd. 210au BufNewFile,BufRead *.cmd 211 \ if getline(1) =~ '^/\*' | setf rexx | else | setf dosbatch | endif 212 213" Batch file for 4DOS 214au BufNewFile,BufRead *.btm call dist#ft#FTbtm() 215 216" BC calculator 217au BufNewFile,BufRead *.bc setf bc 218 219" BDF font 220au BufNewFile,BufRead *.bdf setf bdf 221 222" Beancount 223au BufNewFile,BufRead *.beancount setf beancount 224 225" BibTeX bibliography database file 226au BufNewFile,BufRead *.bib setf bib 227 228" BibTeX Bibliography Style 229au BufNewFile,BufRead *.bst setf bst 230 231" BIND configuration 232" sudoedit uses namedXXXX.conf 233au BufNewFile,BufRead named*.conf,rndc*.conf,rndc*.key setf named 234 235" BIND zone 236au BufNewFile,BufRead named.root setf bindzone 237au BufNewFile,BufRead *.db call dist#ft#BindzoneCheck('') 238 239" Blank 240au BufNewFile,BufRead *.bl setf blank 241 242" Blkid cache file 243au BufNewFile,BufRead */etc/blkid.tab,*/etc/blkid.tab.old setf xml 244 245" BSDL 246au BufNewFile,BufRead *bsd,*.bsdl setf bsdl 247 248" Bazel (http://bazel.io) 249autocmd BufRead,BufNewFile *.bzl,*.bazel,WORKSPACE setf bzl 250if has("fname_case") 251 " There is another check for BUILD further below. 252 autocmd BufRead,BufNewFile *.BUILD,BUILD setf bzl 253endif 254 255" C or lpc 256au BufNewFile,BufRead *.c call dist#ft#FTlpc() 257au BufNewFile,BufRead *.lpc,*.ulpc setf lpc 258 259" Calendar 260au BufNewFile,BufRead calendar setf calendar 261 262" C# 263au BufNewFile,BufRead *.cs setf cs 264 265" CSDL 266au BufNewFile,BufRead *.csdl setf csdl 267 268" Cabal 269au BufNewFile,BufRead *.cabal setf cabal 270 271" Cdrdao TOC 272au BufNewFile,BufRead *.toc setf cdrtoc 273 274" Cdrdao config 275au BufNewFile,BufRead */etc/cdrdao.conf,*/etc/defaults/cdrdao,*/etc/default/cdrdao,.cdrdao setf cdrdaoconf 276 277" Cfengine 278au BufNewFile,BufRead cfengine.conf setf cfengine 279 280" ChaiScript 281au BufRead,BufNewFile *.chai setf chaiscript 282 283" Comshare Dimension Definition Language 284au BufNewFile,BufRead *.cdl setf cdl 285 286" Conary Recipe 287au BufNewFile,BufRead *.recipe setf conaryrecipe 288 289" Controllable Regex Mutilator 290au BufNewFile,BufRead *.crm setf crm 291 292" Cyn++ 293au BufNewFile,BufRead *.cyn setf cynpp 294 295" Cynlib 296" .cc and .cpp files can be C++ or Cynlib. 297au BufNewFile,BufRead *.cc 298 \ if exists("cynlib_syntax_for_cc")|setf cynlib|else|setf cpp|endif 299au BufNewFile,BufRead *.cpp 300 \ if exists("cynlib_syntax_for_cpp")|setf cynlib|else|setf cpp|endif 301 302" C++ 303au BufNewFile,BufRead *.cxx,*.c++,*.hh,*.hxx,*.hpp,*.ipp,*.moc,*.tcc,*.inl setf cpp 304if has("fname_case") 305 au BufNewFile,BufRead *.C,*.H setf cpp 306endif 307 308" .h files can be C, Ch C++, ObjC or ObjC++. 309" Set c_syntax_for_h if you want C, ch_syntax_for_h if you want Ch. ObjC is 310" detected automatically. 311au BufNewFile,BufRead *.h call dist#ft#FTheader() 312 313" Ch (CHscript) 314au BufNewFile,BufRead *.chf setf ch 315 316" TLH files are C++ headers generated by Visual C++'s #import from typelibs 317au BufNewFile,BufRead *.tlh setf cpp 318 319" Cascading Style Sheets 320au BufNewFile,BufRead *.css setf css 321 322" Century Term Command Scripts (*.cmd too) 323au BufNewFile,BufRead *.con setf cterm 324 325" Changelog 326au BufNewFile,BufRead changelog.Debian,changelog.dch,NEWS.Debian,NEWS.dch,*/debian/changelog 327 \ setf debchangelog 328 329au BufNewFile,BufRead [cC]hange[lL]og 330 \ if getline(1) =~ '; urgency=' 331 \| setf debchangelog 332 \| else 333 \| setf changelog 334 \| endif 335 336au BufNewFile,BufRead NEWS 337 \ if getline(1) =~ '; urgency=' 338 \| setf debchangelog 339 \| endif 340 341" CHILL 342au BufNewFile,BufRead *..ch setf chill 343 344" Changes for WEB and CWEB or CHILL 345au BufNewFile,BufRead *.ch call dist#ft#FTchange() 346 347" ChordPro 348au BufNewFile,BufRead *.chopro,*.crd,*.cho,*.crdpro,*.chordpro setf chordpro 349 350" Clean 351au BufNewFile,BufRead *.dcl,*.icl setf clean 352 353" Clever 354au BufNewFile,BufRead *.eni setf cl 355 356" Clever or dtd 357au BufNewFile,BufRead *.ent call dist#ft#FTent() 358 359" Clipper (or FoxPro; could also be eviews) 360au BufNewFile,BufRead *.prg 361 \ if exists("g:filetype_prg") | 362 \ exe "setf " . g:filetype_prg | 363 \ else | 364 \ setf clipper | 365 \ endif 366 367" Clojure 368au BufNewFile,BufRead *.clj,*.cljs,*.cljx,*.cljc setf clojure 369 370" Cmake 371au BufNewFile,BufRead CMakeLists.txt,*.cmake,*.cmake.in setf cmake 372 373" Cmusrc 374au BufNewFile,BufRead */.cmus/{autosave,rc,command-history,*.theme} setf cmusrc 375au BufNewFile,BufRead */cmus/{rc,*.theme} setf cmusrc 376 377" Cobol 378au BufNewFile,BufRead *.cbl,*.cob,*.lib setf cobol 379" cobol or zope form controller python script? (heuristic) 380au BufNewFile,BufRead *.cpy 381 \ if getline(1) =~ '^##' | 382 \ setf python | 383 \ else | 384 \ setf cobol | 385 \ endif 386 387" Coco/R 388au BufNewFile,BufRead *.atg setf coco 389 390" Cold Fusion 391au BufNewFile,BufRead *.cfm,*.cfi,*.cfc setf cf 392 393" Configure scripts 394au BufNewFile,BufRead configure.in,configure.ac setf config 395 396" CUDA Cumpute Unified Device Architecture 397au BufNewFile,BufRead *.cu,*.cuh setf cuda 398 399" Dockerfile; Podman uses the same syntax with name Containerfile 400au BufNewFile,BufRead Containerfile,Dockerfile,*.Dockerfile setf dockerfile 401 402" WildPackets EtherPeek Decoder 403au BufNewFile,BufRead *.dcd setf dcd 404 405" Enlightenment configuration files 406au BufNewFile,BufRead *enlightenment/*.cfg setf c 407 408" Eterm 409au BufNewFile,BufRead *Eterm/*.cfg setf eterm 410 411" Euphoria 3 or 4 412au BufNewFile,BufRead *.eu,*.ew,*.ex,*.exu,*.exw call dist#ft#EuphoriaCheck() 413if has("fname_case") 414 au BufNewFile,BufRead *.EU,*.EW,*.EX,*.EXU,*.EXW call dist#ft#EuphoriaCheck() 415endif 416 417" Lynx config files 418au BufNewFile,BufRead lynx.cfg setf lynx 419 420" Modula-3 configuration language (must be before *.cfg and *makefile) 421au BufNewFile,BufRead *.quake,cm3.cfg setf m3quake 422au BufNewFile,BufRead m3makefile,m3overrides setf m3build 423 424" Quake 425au BufNewFile,BufRead *baseq[2-3]/*.cfg,*id1/*.cfg setf quake 426au BufNewFile,BufRead *quake[1-3]/*.cfg setf quake 427 428" Quake C 429au BufNewFile,BufRead *.qc setf c 430 431" Configure files 432au BufNewFile,BufRead *.cfg setf cfg 433 434" Cucumber 435au BufNewFile,BufRead *.feature setf cucumber 436 437" Communicating Sequential Processes 438au BufNewFile,BufRead *.csp,*.fdr setf csp 439 440" CUPL logic description and simulation 441au BufNewFile,BufRead *.pld setf cupl 442au BufNewFile,BufRead *.si setf cuplsim 443 444" Dart 445au BufRead,BufNewfile *.dart,*.drt setf dart 446 447" Debian Control 448au BufNewFile,BufRead */debian/control setf debcontrol 449au BufNewFile,BufRead control 450 \ if getline(1) =~ '^Source:' 451 \| setf debcontrol 452 \| endif 453 454" Debian Copyright 455au BufNewFile,BufRead */debian/copyright setf debcopyright 456au BufNewFile,BufRead copyright 457 \ if getline(1) =~ '^Format:' 458 \| setf debcopyright 459 \| endif 460 461" Debian Sources.list 462au BufNewFile,BufRead */etc/apt/sources.list setf debsources 463au BufNewFile,BufRead */etc/apt/sources.list.d/*.list setf debsources 464 465" Deny hosts 466au BufNewFile,BufRead denyhosts.conf setf denyhosts 467 468" dnsmasq(8) configuration files 469au BufNewFile,BufRead */etc/dnsmasq.conf setf dnsmasq 470 471" ROCKLinux package description 472au BufNewFile,BufRead *.desc setf desc 473 474" the D language or dtrace 475au BufNewFile,BufRead *.d call dist#ft#DtraceCheck() 476 477" Desktop files 478au BufNewFile,BufRead *.desktop,*.directory setf desktop 479 480" Dict config 481au BufNewFile,BufRead dict.conf,.dictrc setf dictconf 482 483" Dictd config 484au BufNewFile,BufRead dictd.conf setf dictdconf 485 486" Diff files 487au BufNewFile,BufRead *.diff,*.rej setf diff 488au BufNewFile,BufRead *.patch 489 \ if getline(1) =~ '^From [0-9a-f]\{40\} Mon Sep 17 00:00:00 2001$' | 490 \ setf gitsendemail | 491 \ else | 492 \ setf diff | 493 \ endif 494 495" Dircolors 496au BufNewFile,BufRead .dir_colors,.dircolors,*/etc/DIR_COLORS setf dircolors 497 498" Diva (with Skill) or InstallShield 499au BufNewFile,BufRead *.rul 500 \ if getline(1).getline(2).getline(3).getline(4).getline(5).getline(6) =~? 'InstallShield' | 501 \ setf ishd | 502 \ else | 503 \ setf diva | 504 \ endif 505 506" DCL (Digital Command Language - vms) or DNS zone file 507au BufNewFile,BufRead *.com call dist#ft#BindzoneCheck('dcl') 508 509" DOT 510au BufNewFile,BufRead *.dot,*.gv setf dot 511 512" Dune 513au BufNewFile,BufRead jbuild,dune,dune-project,dune-workspace setf dune 514 515" Dylan - lid files 516au BufNewFile,BufRead *.lid setf dylanlid 517 518" Dylan - intr files (melange) 519au BufNewFile,BufRead *.intr setf dylanintr 520 521" Dylan 522au BufNewFile,BufRead *.dylan setf dylan 523 524" Microsoft Module Definition 525au BufNewFile,BufRead *.def setf def 526 527" Dracula 528au BufNewFile,BufRead *.drac,*.drc,*lvs,*lpe setf dracula 529 530" Datascript 531au BufNewFile,BufRead *.ds setf datascript 532 533" dsl 534au BufNewFile,BufRead *.dsl setf dsl 535 536" DTD (Document Type Definition for XML) 537au BufNewFile,BufRead *.dtd setf dtd 538 539" DTS/DSTI (device tree files) 540au BufNewFile,BufRead *.dts,*.dtsi setf dts 541 542" EDIF (*.edf,*.edif,*.edn,*.edo) or edn 543au BufNewFile,BufRead *.ed\(f\|if\|o\) setf edif 544au BufNewFile,BufRead *.edn 545 \ if getline(1) =~ '^\s*(\s*edif\>' | 546 \ setf edif | 547 \ else | 548 \ setf clojure | 549 \ endif 550 551" EditorConfig (close enough to dosini) 552au BufNewFile,BufRead .editorconfig setf dosini 553 554" Embedix Component Description 555au BufNewFile,BufRead *.ecd setf ecd 556 557" Eiffel or Specman or Euphoria 558au BufNewFile,BufRead *.e,*.E call dist#ft#FTe() 559 560" Elinks configuration 561au BufNewFile,BufRead elinks.conf setf elinks 562 563" ERicsson LANGuage; Yaws is erlang too 564au BufNewFile,BufRead *.erl,*.hrl,*.yaws setf erlang 565 566" Elm 567au BufNewFile,BufRead *.elm setf elm 568 569" Elm Filter Rules file 570au BufNewFile,BufRead filter-rules setf elmfilt 571 572" ESMTP rc file 573au BufNewFile,BufRead *esmtprc setf esmtprc 574 575" ESQL-C 576au BufNewFile,BufRead *.ec,*.EC setf esqlc 577 578" Esterel 579au BufNewFile,BufRead *.strl setf esterel 580 581" Essbase script 582au BufNewFile,BufRead *.csc setf csc 583 584" Exim 585au BufNewFile,BufRead exim.conf setf exim 586 587" Expect 588au BufNewFile,BufRead *.exp setf expect 589 590" Exports 591au BufNewFile,BufRead exports setf exports 592 593" Falcon 594au BufNewFile,BufRead *.fal setf falcon 595 596" Fantom 597au BufNewFile,BufRead *.fan,*.fwt setf fan 598 599" Factor 600au BufNewFile,BufRead *.factor setf factor 601 602" Fennel 603autocmd BufRead,BufNewFile *.fnl setf fennel 604 605" Fetchmail RC file 606au BufNewFile,BufRead .fetchmailrc setf fetchmail 607 608" FlexWiki - disabled, because it has side effects when a .wiki file 609" is not actually FlexWiki 610"au BufNewFile,BufRead *.wiki setf flexwiki 611 612" Focus Executable 613au BufNewFile,BufRead *.fex,*.focexec setf focexec 614 615" Focus Master file (but not for auto.master) 616au BufNewFile,BufRead auto.master setf conf 617au BufNewFile,BufRead *.mas,*.master setf master 618 619" Forth 620au BufNewFile,BufRead *.fs,*.ft,*.fth setf forth 621 622" Reva Forth 623au BufNewFile,BufRead *.frt setf reva 624 625" Fortran 626if has("fname_case") 627 au BufNewFile,BufRead *.F,*.FOR,*.FPP,*.FTN,*.F77,*.F90,*.F95,*.F03,*.F08 setf fortran 628endif 629au BufNewFile,BufRead *.f,*.for,*.fortran,*.fpp,*.ftn,*.f77,*.f90,*.f95,*.f03,*.f08 setf fortran 630 631" Framescript 632au BufNewFile,BufRead *.fsl setf framescript 633 634" FStab 635au BufNewFile,BufRead fstab,mtab setf fstab 636 637" GDB command files 638au BufNewFile,BufRead .gdbinit setf gdb 639 640" GDMO 641au BufNewFile,BufRead *.mo,*.gdmo setf gdmo 642 643" Gedcom 644au BufNewFile,BufRead *.ged,lltxxxxx.txt setf gedcom 645 646" Gift (Moodle) 647autocmd BufRead,BufNewFile *.gift setf gift 648 649" Git 650au BufNewFile,BufRead COMMIT_EDITMSG,MERGE_MSG,TAG_EDITMSG setf gitcommit 651au BufNewFile,BufRead *.git/config,.gitconfig,/etc/gitconfig setf gitconfig 652au BufNewFile,BufRead */.config/git/config setf gitconfig 653au BufNewFile,BufRead .gitmodules,*.git/modules/*/config setf gitconfig 654if !empty($XDG_CONFIG_HOME) 655 au BufNewFile,BufRead $XDG_CONFIG_HOME/git/config setf gitconfig 656endif 657au BufNewFile,BufRead git-rebase-todo setf gitrebase 658au BufRead,BufNewFile .gitsendemail.msg.?????? setf gitsendemail 659au BufNewFile,BufRead .msg.[0-9]* 660 \ if getline(1) =~ '^From.*# This line is ignored.$' | 661 \ setf gitsendemail | 662 \ endif 663au BufNewFile,BufRead *.git/* 664 \ if getline(1) =~ '^\x\{40\}\>\|^ref: ' | 665 \ setf git | 666 \ endif 667 668" Gkrellmrc 669au BufNewFile,BufRead gkrellmrc,gkrellmrc_? setf gkrellmrc 670 671" GP scripts (2.0 and onward) 672au BufNewFile,BufRead *.gp,.gprc setf gp 673 674" GPG 675au BufNewFile,BufRead */.gnupg/options setf gpg 676au BufNewFile,BufRead */.gnupg/gpg.conf setf gpg 677au BufNewFile,BufRead */usr/*/gnupg/options.skel setf gpg 678if !empty($GNUPGHOME) 679 au BufNewFile,BufRead $GNUPGHOME/options setf gpg 680 au BufNewFile,BufRead $GNUPGHOME/gpg.conf setf gpg 681endif 682 683" gnash(1) configuration files 684au BufNewFile,BufRead gnashrc,.gnashrc,gnashpluginrc,.gnashpluginrc setf gnash 685 686" Gitolite 687au BufNewFile,BufRead gitolite.conf setf gitolite 688au BufNewFile,BufRead {,.}gitolite.rc,example.gitolite.rc setf perl 689 690" Gnuplot scripts 691au BufNewFile,BufRead *.gpi setf gnuplot 692 693" Go (Google) 694au BufNewFile,BufRead *.go setf go 695 696" GrADS scripts 697au BufNewFile,BufRead *.gs setf grads 698 699" Gretl 700au BufNewFile,BufRead *.gretl setf gretl 701 702" Groovy 703au BufNewFile,BufRead *.gradle,*.groovy setf groovy 704 705" GNU Server Pages 706au BufNewFile,BufRead *.gsp setf gsp 707 708" Group file 709au 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 710 711" GTK RC 712au BufNewFile,BufRead .gtkrc,gtkrc setf gtkrc 713 714" Haml 715au BufNewFile,BufRead *.haml setf haml 716 717" Hamster Classic | Playground files 718au BufNewFile,BufRead *.hsm setf hamster 719 720" Haskell 721au BufNewFile,BufRead *.hs,*.hsc,*.hs-boot,*.hsig setf haskell 722au BufNewFile,BufRead *.lhs setf lhaskell 723au BufNewFile,BufRead *.chs setf chaskell 724au BufNewFile,BufRead cabal.project setf cabalproject 725au BufNewFile,BufRead $HOME/.cabal/config setf cabalconfig 726au BufNewFile,BufRead cabal.config setf cabalconfig 727 728" Haste 729au BufNewFile,BufRead *.ht setf haste 730au BufNewFile,BufRead *.htpp setf hastepreproc 731 732" Hercules 733au BufNewFile,BufRead *.vc,*.ev,*.sum,*.errsum setf hercules 734 735" HEX (Intel) 736au BufNewFile,BufRead *.hex,*.h32 setf hex 737 738" Hollywood 739au BufRead,BufNewFile *.hws setf hollywood 740 741" Tilde (must be before HTML) 742au BufNewFile,BufRead *.t.html setf tilde 743 744" HTML (.shtml and .stm for server side) 745au BufNewFile,BufRead *.html,*.htm,*.shtml,*.stm call dist#ft#FThtml() 746 747" HTML with Ruby - eRuby 748au BufNewFile,BufRead *.erb,*.rhtml setf eruby 749 750" HTML with M4 751au BufNewFile,BufRead *.html.m4 setf htmlm4 752 753" Some template. Used to be HTML Cheetah. 754au BufNewFile,BufRead *.tmpl setf template 755 756" Host config 757au BufNewFile,BufRead */etc/host.conf setf hostconf 758 759" Hosts access 760au BufNewFile,BufRead */etc/hosts.allow,*/etc/hosts.deny setf hostsaccess 761 762" Hyper Builder 763au BufNewFile,BufRead *.hb setf hb 764 765" Httest 766au BufNewFile,BufRead *.htt,*.htb setf httest 767 768" Icon 769au BufNewFile,BufRead *.icn setf icon 770 771" IDL (Interface Description Language) 772au BufNewFile,BufRead *.idl call dist#ft#FTidl() 773 774" Microsoft IDL (Interface Description Language) Also *.idl 775" MOF = WMI (Windows Management Instrumentation) Managed Object Format 776au BufNewFile,BufRead *.odl,*.mof setf msidl 777 778" Icewm menu 779au BufNewFile,BufRead */.icewm/menu setf icemenu 780 781" Indent profile (must come before IDL *.pro!) 782au BufNewFile,BufRead .indent.pro setf indent 783au BufNewFile,BufRead indent.pro call dist#ft#ProtoCheck('indent') 784 785" IDL (Interactive Data Language) 786au BufNewFile,BufRead *.pro call dist#ft#ProtoCheck('idlang') 787 788" Indent RC 789au BufNewFile,BufRead indentrc setf indent 790 791" Inform 792au BufNewFile,BufRead *.inf,*.INF setf inform 793 794" Initng 795au BufNewFile,BufRead */etc/initng/*/*.i,*.ii setf initng 796 797" Innovation Data Processing 798au BufRead,BufNewFile upstream.dat\c,upstream.*.dat\c,*.upstream.dat\c setf upstreamdat 799au BufRead,BufNewFile fdrupstream.log,upstream.log\c,upstream.*.log\c,*.upstream.log\c,UPSTREAM-*.log\c setf upstreamlog 800au BufRead,BufNewFile upstreaminstall.log\c,upstreaminstall.*.log\c,*.upstreaminstall.log\c setf upstreaminstalllog 801au BufRead,BufNewFile usserver.log\c,usserver.*.log\c,*.usserver.log\c setf usserverlog 802au BufRead,BufNewFile usw2kagt.log\c,usw2kagt.*.log\c,*.usw2kagt.log\c setf usw2kagtlog 803 804" Ipfilter 805au BufNewFile,BufRead ipf.conf,ipf6.conf,ipf.rules setf ipfilter 806 807" Informix 4GL (source - canonical, include file, I4GL+M4 preproc.) 808au BufNewFile,BufRead *.4gl,*.4gh,*.m4gl setf fgl 809 810" .INI file for MSDOS 811au BufNewFile,BufRead *.ini setf dosini 812 813" SysV Inittab 814au BufNewFile,BufRead inittab setf inittab 815 816" Inno Setup 817au BufNewFile,BufRead *.iss setf iss 818 819" J 820au BufNewFile,BufRead *.ijs setf j 821 822" JAL 823au BufNewFile,BufRead *.jal,*.JAL setf jal 824 825" Jam 826au BufNewFile,BufRead *.jpl,*.jpr setf jam 827 828" Java 829au BufNewFile,BufRead *.java,*.jav setf java 830 831" JavaCC 832au BufNewFile,BufRead *.jj,*.jjt setf javacc 833 834" JavaScript, ECMAScript, ES module script, CommonJS script 835au BufNewFile,BufRead *.js,*.javascript,*.es,*.mjs,*.cjs setf javascript 836 837" JavaScript with React 838au BufNewFile,BufRead *.jsx setf javascriptreact 839 840" Java Server Pages 841au BufNewFile,BufRead *.jsp setf jsp 842 843" Java Properties resource file (note: doesn't catch font.properties.pl) 844au BufNewFile,BufRead *.properties,*.properties_??,*.properties_??_?? setf jproperties 845 846" Jess 847au BufNewFile,BufRead *.clp setf jess 848 849" Jgraph 850au BufNewFile,BufRead *.jgr setf jgraph 851 852" Jovial 853au BufNewFile,BufRead *.jov,*.j73,*.jovial setf jovial 854 855" JSON 856au BufNewFile,BufRead *.json,*.jsonp,*.webmanifest setf json 857 858" Jupyter Notebook is also json 859au BufNewFile,BufRead *.ipynb setf json 860 861" Kixtart 862au BufNewFile,BufRead *.kix setf kix 863 864" Kimwitu[++] 865au BufNewFile,BufRead *.k setf kwt 866 867" Kivy 868au BufNewFile,BufRead *.kv setf kivy 869 870" Kotlin 871au BufNewFile,BufRead *.kt,*.ktm,*.kts setf kotlin 872 873" KDE script 874au BufNewFile,BufRead *.ks setf kscript 875 876" Kconfig 877au BufNewFile,BufRead Kconfig,Kconfig.debug setf kconfig 878 879" Lace (ISE) 880au BufNewFile,BufRead *.ace,*.ACE setf lace 881 882" Latte 883au BufNewFile,BufRead *.latte,*.lte setf latte 884 885" Limits 886au BufNewFile,BufRead */etc/limits,*/etc/*limits.conf,*/etc/*limits.d/*.conf setf limits 887 888" LambdaProlog (*.mod too, see Modsim) 889au BufNewFile,BufRead *.sig setf lprolog 890 891" LDAP LDIF 892au BufNewFile,BufRead *.ldif setf ldif 893 894" Ld loader 895au BufNewFile,BufRead *.ld setf ld 896 897" Less 898au BufNewFile,BufRead *.less setf less 899 900" Lex 901au BufNewFile,BufRead *.lex,*.l,*.lxx,*.l++ setf lex 902 903" Libao 904au BufNewFile,BufRead */etc/libao.conf,*/.libao setf libao 905 906" Libsensors 907au BufNewFile,BufRead */etc/sensors.conf,*/etc/sensors3.conf setf sensors 908 909" LFTP 910au BufNewFile,BufRead lftp.conf,.lftprc,*lftp/rc setf lftp 911 912" Lifelines (or Lex for C++!) 913au BufNewFile,BufRead *.ll setf lifelines 914 915" Lilo: Linux loader 916au BufNewFile,BufRead lilo.conf setf lilo 917 918" Lisp (*.el = ELisp, *.cl = Common Lisp) 919" *.jl was removed, it's also used for Julia, better skip than guess wrong. 920if has("fname_case") 921 au BufNewFile,BufRead *.lsp,*.lisp,*.el,*.cl,*.L,.emacs,.sawfishrc setf lisp 922else 923 au BufNewFile,BufRead *.lsp,*.lisp,*.el,*.cl,.emacs,.sawfishrc setf lisp 924endif 925 926" SBCL implementation of Common Lisp 927au BufNewFile,BufRead sbclrc,.sbclrc setf lisp 928 929" Liquid 930au BufNewFile,BufRead *.liquid setf liquid 931 932" Lite 933au BufNewFile,BufRead *.lite,*.lt setf lite 934 935" LiteStep RC files 936au BufNewFile,BufRead */LiteStep/*/*.rc setf litestep 937 938" Login access 939au BufNewFile,BufRead */etc/login.access setf loginaccess 940 941" Login defs 942au BufNewFile,BufRead */etc/login.defs setf logindefs 943 944" Logtalk 945au BufNewFile,BufRead *.lgt setf logtalk 946 947" LOTOS 948au BufNewFile,BufRead *.lot,*.lotos setf lotos 949 950" Lout (also: *.lt) 951au BufNewFile,BufRead *.lou,*.lout setf lout 952 953" Lua 954au BufNewFile,BufRead *.lua setf lua 955 956" Luarocks 957au BufNewFile,BufRead *.rockspec setf lua 958 959" Linden Scripting Language (Second Life) 960au BufNewFile,BufRead *.lsl setf lsl 961 962" Lynx style file (or LotusScript!) 963au BufNewFile,BufRead *.lss setf lss 964 965" M4 966au BufNewFile,BufRead *.m4 967 \ if expand("<afile>") !~? 'html.m4$\|fvwm2rc' | setf m4 | endif 968 969" MaGic Point 970au BufNewFile,BufRead *.mgp setf mgp 971 972" Mail (for Elm, trn, mutt, muttng, rn, slrn, neomutt) 973au 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 974 975" Mail aliases 976au BufNewFile,BufRead */etc/mail/aliases,*/etc/aliases setf mailaliases 977 978" Mailcap configuration file 979au BufNewFile,BufRead .mailcap,mailcap setf mailcap 980 981" Makefile 982au BufNewFile,BufRead *[mM]akefile,*.mk,*.mak,*.dsp setf make 983 984" MakeIndex 985au BufNewFile,BufRead *.ist,*.mst setf ist 986 987" Mallard 988au BufNewFile,BufRead *.page setf mallard 989 990" Manpage 991au BufNewFile,BufRead *.man setf man 992 993" Man config 994au BufNewFile,BufRead */etc/man.conf,man.config setf manconf 995 996" Maple V 997au BufNewFile,BufRead *.mv,*.mpl,*.mws setf maple 998 999" Map (UMN mapserver config file) 1000au BufNewFile,BufRead *.map setf map 1001 1002" Markdown 1003au BufNewFile,BufRead *.markdown,*.mdown,*.mkd,*.mkdn,*.mdwn,*.md setf markdown 1004 1005" Mason 1006au BufNewFile,BufRead *.mason,*.mhtml,*.comp setf mason 1007 1008" Mathematica, Matlab, Murphi or Objective C 1009au BufNewFile,BufRead *.m call dist#ft#FTm() 1010 1011" Mathematica notebook 1012au BufNewFile,BufRead *.nb setf mma 1013 1014" Maya Extension Language 1015au BufNewFile,BufRead *.mel setf mel 1016 1017" Mercurial (hg) commit file 1018au BufNewFile,BufRead hg-editor-*.txt setf hgcommit 1019 1020" Mercurial config (looks like generic config file) 1021au BufNewFile,BufRead *.hgrc,*hgrc setf cfg 1022 1023" Meson Build system config 1024au BufNewFile,BufRead meson.build,meson_options.txt setf meson 1025au BufNewFile,BufRead *.wrap setf dosini 1026 1027" Messages (logs mostly) 1028au 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 1029 1030" Metafont 1031au BufNewFile,BufRead *.mf setf mf 1032 1033" MetaPost 1034au BufNewFile,BufRead *.mp setf mp 1035 1036" MGL 1037au BufNewFile,BufRead *.mgl setf mgl 1038 1039" MIX - Knuth assembly 1040au BufNewFile,BufRead *.mix,*.mixal setf mix 1041 1042" MMIX or VMS makefile 1043au BufNewFile,BufRead *.mms call dist#ft#FTmms() 1044 1045" Symbian meta-makefile definition (MMP) 1046au BufNewFile,BufRead *.mmp setf mmp 1047 1048" Modsim III (or LambdaProlog) 1049au BufNewFile,BufRead *.mod 1050 \ if getline(1) =~ '\<module\>' | 1051 \ setf lprolog | 1052 \ else | 1053 \ setf modsim3 | 1054 \ endif 1055 1056" Modula-2 (.md removed in favor of Markdown) 1057au BufNewFile,BufRead *.m2,*.DEF,*.MOD,*.mi setf modula2 1058 1059" Modula-3 (.m3, .i3, .mg, .ig) 1060au BufNewFile,BufRead *.[mi][3g] setf modula3 1061 1062" Monk 1063au BufNewFile,BufRead *.isc,*.monk,*.ssc,*.tsc setf monk 1064 1065" MOO 1066au BufNewFile,BufRead *.moo setf moo 1067 1068" Modconf 1069au BufNewFile,BufRead */etc/modules.conf,*/etc/modules,*/etc/conf.modules setf modconf 1070 1071" Mplayer config 1072au BufNewFile,BufRead mplayer.conf,*/.mplayer/config setf mplayerconf 1073 1074" Motorola S record 1075au BufNewFile,BufRead *.s19,*.s28,*.s37,*.mot,*.srec setf srec 1076 1077" Mrxvtrc 1078au BufNewFile,BufRead mrxvtrc,.mrxvtrc setf mrxvtrc 1079 1080" Msql 1081au BufNewFile,BufRead *.msql setf msql 1082 1083" Mysql 1084au BufNewFile,BufRead *.mysql setf mysql 1085 1086" Mutt setup files (must be before catch *.rc) 1087au BufNewFile,BufRead */etc/Muttrc.d/* call s:StarSetf('muttrc') 1088 1089" M$ Resource files 1090au BufNewFile,BufRead *.rc,*.rch setf rc 1091 1092" MuPAD source 1093au BufRead,BufNewFile *.mu setf mupad 1094 1095" Mush 1096au BufNewFile,BufRead *.mush setf mush 1097 1098" Mutt setup file (also for Muttng) 1099au BufNewFile,BufRead Mutt{ng,}rc setf muttrc 1100 1101" N1QL 1102au BufRead,BufNewfile *.n1ql,*.nql setf n1ql 1103 1104" Nano 1105au BufNewFile,BufRead */etc/nanorc,*.nanorc setf nanorc 1106 1107" Nastran input/DMAP 1108"au BufNewFile,BufRead *.dat setf nastran 1109 1110" Natural 1111au BufNewFile,BufRead *.NS[ACGLMNPS] setf natural 1112 1113" Noemutt setup file 1114au BufNewFile,BufRead Neomuttrc setf neomuttrc 1115 1116" Netrc 1117au BufNewFile,BufRead .netrc setf netrc 1118 1119" Ninja file 1120au BufNewFile,BufRead *.ninja setf ninja 1121 1122" NPM RC file 1123au BufNewFile,BufRead npmrc,.npmrc setf dosini 1124 1125" Novell netware batch files 1126au BufNewFile,BufRead *.ncf setf ncf 1127 1128" Nroff/Troff (*.ms and *.t are checked below) 1129au BufNewFile,BufRead *.me 1130 \ if expand("<afile>") != "read.me" && expand("<afile>") != "click.me" | 1131 \ setf nroff | 1132 \ endif 1133au BufNewFile,BufRead *.tr,*.nr,*.roff,*.tmac,*.mom setf nroff 1134au BufNewFile,BufRead *.[1-9] call dist#ft#FTnroff() 1135 1136" Nroff or Objective C++ 1137au BufNewFile,BufRead *.mm call dist#ft#FTmm() 1138 1139" Not Quite C 1140au BufNewFile,BufRead *.nqc setf nqc 1141 1142" NSE - Nmap Script Engine - uses Lua syntax 1143au BufNewFile,BufRead *.nse setf lua 1144 1145" NSIS 1146au BufNewFile,BufRead *.nsi,*.nsh setf nsis 1147 1148" OCaml 1149au BufNewFile,BufRead *.ml,*.mli,*.mll,*.mly,.ocamlinit,*.mlt,*.mlp,*.mlip,*.mli.cppo,*.ml.cppo setf ocaml 1150 1151" Occam 1152au BufNewFile,BufRead *.occ setf occam 1153 1154" Omnimark 1155au BufNewFile,BufRead *.xom,*.xin setf omnimark 1156 1157" OPAM 1158au BufNewFile,BufRead opam,*.opam,*.opam.template setf opam 1159 1160" OpenROAD 1161au BufNewFile,BufRead *.or setf openroad 1162 1163" OPL 1164au BufNewFile,BufRead *.[Oo][Pp][Ll] setf opl 1165 1166" Oracle config file 1167au BufNewFile,BufRead *.ora setf ora 1168 1169" Packet filter conf 1170au BufNewFile,BufRead pf.conf setf pf 1171 1172" Pacman Config (close enough to dosini) 1173au BufNewFile,BufRead */etc/pacman.conf setf dosini 1174 1175" Pacman hooks 1176au BufNewFile,BufRead *.hook 1177 \ if getline(1) == '[Trigger]' | 1178 \ setf dosini | 1179 \ endif 1180 1181" Pam conf 1182au BufNewFile,BufRead */etc/pam.conf setf pamconf 1183 1184" Pam environment 1185au BufNewFile,BufRead pam_env.conf,.pam_environment setf pamenv 1186 1187" PApp 1188au BufNewFile,BufRead *.papp,*.pxml,*.pxsl setf papp 1189 1190" Password file 1191au 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 1192 1193" Pascal (also *.p, *.pp, *.inc) 1194au BufNewFile,BufRead *.pas setf pascal 1195 1196" Pascal or Puppet manifest 1197au BufNewFile,BufRead *.pp call dist#ft#FTpp() 1198 1199" Delphi or Lazarus program file 1200au BufNewFile,BufRead *.dpr,*.lpr setf pascal 1201 1202" Free Pascal makefile definition file 1203au BufNewFile,BufRead *.fpc setf fpcmake 1204 1205" PDF 1206au BufNewFile,BufRead *.pdf setf pdf 1207 1208" PCMK - HAE - crm configure edit 1209au BufNewFile,BufRead *.pcmk setf pcmk 1210 1211" Perl 1212if has("fname_case") 1213 au BufNewFile,BufRead *.pl,*.PL call dist#ft#FTpl() 1214else 1215 au BufNewFile,BufRead *.pl call dist#ft#FTpl() 1216endif 1217au BufNewFile,BufRead *.plx,*.al,*.psgi setf perl 1218 1219" Perl, XPM or XPM2 1220au BufNewFile,BufRead *.pm 1221 \ if getline(1) =~ "XPM2" | 1222 \ setf xpm2 | 1223 \ elseif getline(1) =~ "XPM" | 1224 \ setf xpm | 1225 \ else | 1226 \ setf perl | 1227 \ endif 1228 1229" Perl POD 1230au BufNewFile,BufRead *.pod setf pod 1231 1232" Php, php3, php4, etc. 1233" Also Phtml (was used for PHP 2 in the past) 1234" Also .ctp for Cake template file 1235au BufNewFile,BufRead *.php,*.php\d,*.phtml,*.ctp setf php 1236 1237" PHP config 1238au BufNewFile,BufRead php.ini-* setf dosini 1239 1240" Pike and Cmod 1241au BufNewFile,BufRead *.pike,*.pmod setf pike 1242au BufNewFile,BufRead *.cmod setf cmod 1243 1244" Pinfo config 1245au BufNewFile,BufRead */etc/pinforc,*/.pinforc setf pinfo 1246 1247" Palm Resource compiler 1248au BufNewFile,BufRead *.rcp setf pilrc 1249 1250" Pine config 1251au BufNewFile,BufRead .pinerc,pinerc,.pinercex,pinercex setf pine 1252 1253" Pipenv Pipfiles 1254au BufNewFile,BufRead Pipfile setf config 1255au BufNewFile,BufRead Pipfile.lock setf json 1256 1257" PL/1, PL/I 1258au BufNewFile,BufRead *.pli,*.pl1 setf pli 1259 1260" PL/M (also: *.inp) 1261au BufNewFile,BufRead *.plm,*.p36,*.pac setf plm 1262 1263" PL/SQL 1264au BufNewFile,BufRead *.pls,*.plsql setf plsql 1265 1266" PLP 1267au BufNewFile,BufRead *.plp setf plp 1268 1269" PO and PO template (GNU gettext) 1270au BufNewFile,BufRead *.po,*.pot setf po 1271 1272" Postfix main config 1273au BufNewFile,BufRead main.cf setf pfmain 1274 1275" PostScript (+ font files, encapsulated PostScript, Adobe Illustrator) 1276au BufNewFile,BufRead *.ps,*.pfa,*.afm,*.eps,*.epsf,*.epsi,*.ai setf postscr 1277 1278" PostScript Printer Description 1279au BufNewFile,BufRead *.ppd setf ppd 1280 1281" Povray 1282au BufNewFile,BufRead *.pov setf pov 1283 1284" Povray configuration 1285au BufNewFile,BufRead .povrayrc setf povini 1286 1287" Povray, Pascal, PHP or assembly 1288au BufNewFile,BufRead *.inc call dist#ft#FTinc() 1289 1290" PowerShell 1291au BufNewFile,BufRead *.ps1,*.psd1,*.psm1,*.pssc setf ps1 1292au BufNewFile,BufRead *.ps1xml setf ps1xml 1293au BufNewFile,BufRead *.cdxml,*.psc1 setf xml 1294 1295" Printcap and Termcap 1296au BufNewFile,BufRead *printcap 1297 \ let b:ptcap_type = "print" | setf ptcap 1298au BufNewFile,BufRead *termcap 1299 \ let b:ptcap_type = "term" | setf ptcap 1300 1301" PCCTS / ANTLR 1302"au BufNewFile,BufRead *.g setf antlr 1303au BufNewFile,BufRead *.g setf pccts 1304 1305" PPWizard 1306au BufNewFile,BufRead *.it,*.ih setf ppwiz 1307 1308" Puppet 1309au BufNewFile,BufRead Puppetfile setf ruby 1310 1311" Embedded Puppet 1312au BufNewFile,BufRead *.epp setf epuppet 1313 1314" Obj 3D file format 1315" TODO: is there a way to avoid MS-Windows Object files? 1316au BufNewFile,BufRead *.obj setf obj 1317 1318" Oracle Pro*C/C++ 1319au BufNewFile,BufRead *.pc setf proc 1320 1321" Privoxy actions file 1322au BufNewFile,BufRead *.action setf privoxy 1323 1324" Procmail 1325au BufNewFile,BufRead .procmail,.procmailrc setf procmail 1326 1327" Progress or CWEB 1328au BufNewFile,BufRead *.w call dist#ft#FTprogress_cweb() 1329 1330" Progress or assembly 1331au BufNewFile,BufRead *.i call dist#ft#FTprogress_asm() 1332 1333" Progress or Pascal 1334au BufNewFile,BufRead *.p call dist#ft#FTprogress_pascal() 1335 1336" Software Distributor Product Specification File (POSIX 1387.2-1995) 1337au BufNewFile,BufRead *.psf setf psf 1338au BufNewFile,BufRead INDEX,INFO 1339 \ if getline(1) =~ '^\s*\(distribution\|installed_software\|root\|bundle\|product\)\s*$' | 1340 \ setf psf | 1341 \ endif 1342 1343" Prolog 1344au BufNewFile,BufRead *.pdb setf prolog 1345 1346" Promela 1347au BufNewFile,BufRead *.pml setf promela 1348 1349" Property Specification Language (PSL) 1350au BufNewFile,BufRead *.psl setf psl 1351 1352" Google protocol buffers 1353au BufNewFile,BufRead *.proto setf proto 1354au BufNewFile,BufRead *.pbtxt setf pbtxt 1355 1356" Poke 1357au BufNewFile,BufRead *.pk setf poke 1358 1359" Protocols 1360au BufNewFile,BufRead */etc/protocols setf protocols 1361 1362" Pyrex 1363au BufNewFile,BufRead *.pyx,*.pxd setf pyrex 1364 1365" Python, Python Shell Startup and Python Stub Files 1366" Quixote (Python-based web framework) 1367au BufNewFile,BufRead *.py,*.pyw,.pythonstartup,.pythonrc setf python 1368au BufNewFile,BufRead *.ptl,*.pyi,SConstruct setf python 1369 1370" Radiance 1371au BufNewFile,BufRead *.rad,*.mat setf radiance 1372 1373" Raku (formelly Perl6) 1374au BufNewFile,BufRead *.pm6,*.p6,*.t6,*.pod6,*.raku,*.rakumod,*.rakudoc,*.rakutest setf raku 1375 1376" Ratpoison config/command files 1377au BufNewFile,BufRead .ratpoisonrc,ratpoisonrc setf ratpoison 1378 1379" RCS file 1380au BufNewFile,BufRead *\,v setf rcs 1381 1382" Readline 1383au BufNewFile,BufRead .inputrc,inputrc setf readline 1384 1385" Registry for MS-Windows 1386au BufNewFile,BufRead *.reg 1387 \ if getline(1) =~? '^REGEDIT[0-9]*\s*$\|^Windows Registry Editor Version \d*\.\d*\s*$' | setf registry | endif 1388 1389" Renderman Interface Bytestream 1390au BufNewFile,BufRead *.rib setf rib 1391 1392" Rego Policy Language 1393au BufNewFile,BufRead *.rego setf rego 1394 1395" Rexx 1396au BufNewFile,BufRead *.rex,*.orx,*.rxo,*.rxj,*.jrexx,*.rexxj,*.rexx,*.testGroup,*.testUnit setf rexx 1397 1398" R Help file 1399if has("fname_case") 1400 au BufNewFile,BufRead *.rd,*.Rd setf rhelp 1401else 1402 au BufNewFile,BufRead *.rd setf rhelp 1403endif 1404 1405" R noweb file 1406if has("fname_case") 1407 au BufNewFile,BufRead *.Rnw,*.rnw,*.Snw,*.snw setf rnoweb 1408else 1409 au BufNewFile,BufRead *.rnw,*.snw setf rnoweb 1410endif 1411 1412" R Markdown file 1413if has("fname_case") 1414 au BufNewFile,BufRead *.Rmd,*.rmd,*.Smd,*.smd setf rmd 1415else 1416 au BufNewFile,BufRead *.rmd,*.smd setf rmd 1417endif 1418 1419" RSS looks like XML 1420au BufNewFile,BufRead *.rss setf xml 1421 1422" R reStructuredText file 1423if has("fname_case") 1424 au BufNewFile,BufRead *.Rrst,*.rrst,*.Srst,*.srst setf rrst 1425else 1426 au BufNewFile,BufRead *.rrst,*.srst setf rrst 1427endif 1428 1429" Rexx, Rebol or R 1430au BufNewFile,BufRead *.r,*.R call dist#ft#FTr() 1431 1432" Remind 1433au BufNewFile,BufRead .reminders,*.remind,*.rem setf remind 1434 1435" Resolv.conf 1436au BufNewFile,BufRead resolv.conf setf resolv 1437 1438" Relax NG Compact 1439au BufNewFile,BufRead *.rnc setf rnc 1440 1441" Relax NG XML 1442au BufNewFile,BufRead *.rng setf rng 1443 1444" RPL/2 1445au BufNewFile,BufRead *.rpl setf rpl 1446 1447" Robots.txt 1448au BufNewFile,BufRead robots.txt setf robots 1449 1450" Rpcgen 1451au BufNewFile,BufRead *.x setf rpcgen 1452 1453" reStructuredText Documentation Format 1454au BufNewFile,BufRead *.rst setf rst 1455 1456" RTF 1457au BufNewFile,BufRead *.rtf setf rtf 1458 1459" Interactive Ruby shell 1460au BufNewFile,BufRead .irbrc,irbrc setf ruby 1461 1462" Ruby 1463au BufNewFile,BufRead *.rb,*.rbw setf ruby 1464 1465" RubyGems 1466au BufNewFile,BufRead *.gemspec setf ruby 1467 1468" RBS (Ruby Signature) 1469au BufNewFile,BufRead *.rbs setf rbs 1470 1471" Rackup 1472au BufNewFile,BufRead *.ru setf ruby 1473 1474" Bundler 1475au BufNewFile,BufRead Gemfile setf ruby 1476 1477" Ruby on Rails 1478au BufNewFile,BufRead *.builder,*.rxml,*.rjs setf ruby 1479 1480" Rantfile and Rakefile is like Ruby 1481au BufNewFile,BufRead [rR]antfile,*.rant,[rR]akefile,*.rake setf ruby 1482 1483" Rust 1484au BufNewFile,BufRead *.rs setf rust 1485 1486" S-lang (or shader language, or SmallLisp) 1487au BufNewFile,BufRead *.sl setf slang 1488 1489" Samba config 1490au BufNewFile,BufRead smb.conf setf samba 1491 1492" SAS script 1493au BufNewFile,BufRead *.sas setf sas 1494 1495" Sass 1496au BufNewFile,BufRead *.sass setf sass 1497 1498" Sather 1499au BufNewFile,BufRead *.sa setf sather 1500 1501" Scala 1502au BufNewFile,BufRead *.scala,*.sc setf scala 1503 1504" SBT - Scala Build Tool 1505au BufNewFile,BufRead *.sbt setf sbt 1506 1507" Scilab 1508au BufNewFile,BufRead *.sci,*.sce setf scilab 1509 1510" SCSS 1511au BufNewFile,BufRead *.scss setf scss 1512 1513" SD: Streaming Descriptors 1514au BufNewFile,BufRead *.sd setf sd 1515 1516" SDL 1517au BufNewFile,BufRead *.sdl,*.pr setf sdl 1518 1519" sed 1520au BufNewFile,BufRead *.sed setf sed 1521 1522" svelte 1523au BufNewFile,BufRead *.svelte setf svelte 1524 1525" Sieve (RFC 3028, 5228) 1526au BufNewFile,BufRead *.siv,*.sieve setf sieve 1527 1528" Sendmail 1529au BufNewFile,BufRead sendmail.cf setf sm 1530 1531" Sendmail .mc files are actually m4. Could also be MS Message text file. 1532au BufNewFile,BufRead *.mc call dist#ft#McSetf() 1533 1534" Services 1535au BufNewFile,BufRead */etc/services setf services 1536 1537" Service Location config 1538au BufNewFile,BufRead */etc/slp.conf setf slpconf 1539 1540" Service Location registration 1541au BufNewFile,BufRead */etc/slp.reg setf slpreg 1542 1543" Service Location SPI 1544au BufNewFile,BufRead */etc/slp.spi setf slpspi 1545 1546" Setserial config 1547au BufNewFile,BufRead */etc/serial.conf setf setserial 1548 1549" SGML 1550au BufNewFile,BufRead *.sgm,*.sgml 1551 \ if getline(1).getline(2).getline(3).getline(4).getline(5) =~? 'linuxdoc' | 1552 \ setf sgmllnx | 1553 \ elseif getline(1) =~ '<!DOCTYPE.*DocBook' || getline(2) =~ '<!DOCTYPE.*DocBook' | 1554 \ let b:docbk_type = "sgml" | 1555 \ let b:docbk_ver = 4 | 1556 \ setf docbk | 1557 \ else | 1558 \ setf sgml | 1559 \ endif 1560 1561" SGMLDECL 1562au BufNewFile,BufRead *.decl,*.dcl,*.dec 1563 \ if getline(1).getline(2).getline(3) =~? '^<!SGML' | 1564 \ setf sgmldecl | 1565 \ endif 1566 1567" SGML catalog file 1568au BufNewFile,BufRead catalog setf catalog 1569 1570" Shell scripts (sh, ksh, bash, bash2, csh); Allow .profile_foo etc. 1571" Gentoo ebuilds, Arch Linux PKGBUILDs and Alpine Linux APKBUILDs are actually 1572" bash scripts. 1573" NOTE: Patterns ending in a star are further down, these have lower priority. 1574au BufNewFile,BufRead .bashrc,bashrc,bash.bashrc,.bash[_-]profile,.bash[_-]logout,.bash[_-]aliases,bash-fc[-.],*.ebuild,*.bash,*.eclass,PKGBUILD,APKBUILD call dist#ft#SetFileTypeSH("bash") 1575au BufNewFile,BufRead .kshrc,*.ksh call dist#ft#SetFileTypeSH("ksh") 1576au BufNewFile,BufRead */etc/profile,.profile,*.sh,*.env call dist#ft#SetFileTypeSH(getline(1)) 1577 1578" Shell script (Arch Linux) or PHP file (Drupal) 1579au BufNewFile,BufRead *.install 1580 \ if getline(1) =~ '<?php' | 1581 \ setf php | 1582 \ else | 1583 \ call dist#ft#SetFileTypeSH("bash") | 1584 \ endif 1585 1586" tcsh scripts (patterns ending in a star further below) 1587au BufNewFile,BufRead .tcshrc,*.tcsh,tcsh.tcshrc,tcsh.login call dist#ft#SetFileTypeShell("tcsh") 1588 1589" csh scripts, but might also be tcsh scripts (on some systems csh is tcsh) 1590" (patterns ending in a start further below) 1591au BufNewFile,BufRead .login,.cshrc,csh.cshrc,csh.login,csh.logout,*.csh,.alias call dist#ft#CSH() 1592 1593" Z-Shell script (patterns ending in a star further below) 1594au BufNewFile,BufRead .zprofile,*/etc/zprofile,.zfbfmarks setf zsh 1595au BufNewFile,BufRead .zshrc,.zshenv,.zlogin,.zlogout,.zcompdump setf zsh 1596au BufNewFile,BufRead *.zsh setf zsh 1597 1598" Scheme 1599au BufNewFile,BufRead *.scm,*.ss,*.rkt setf scheme 1600 1601" Screen RC 1602au BufNewFile,BufRead .screenrc,screenrc setf screen 1603 1604" Sexplib 1605au BufNewFile,BufRead *.sexp setf sexplib 1606 1607" Simula 1608au BufNewFile,BufRead *.sim setf simula 1609 1610" SINDA 1611au BufNewFile,BufRead *.sin,*.s85 setf sinda 1612 1613" SiSU 1614au BufNewFile,BufRead *.sst,*.ssm,*.ssi,*.-sst,*._sst setf sisu 1615au BufNewFile,BufRead *.sst.meta,*.-sst.meta,*._sst.meta setf sisu 1616 1617" SKILL 1618au BufNewFile,BufRead *.il,*.ils,*.cdf setf skill 1619 1620" SLRN 1621au BufNewFile,BufRead .slrnrc setf slrnrc 1622au BufNewFile,BufRead *.score setf slrnsc 1623 1624" Smalltalk (and TeX) 1625au BufNewFile,BufRead *.st setf st 1626au BufNewFile,BufRead *.cls 1627 \ if getline(1) =~ '^%' | 1628 \ setf tex | 1629 \ elseif getline(1)[0] == '#' && getline(1) =~ 'rexx' | 1630 \ setf rexx | 1631 \ else | 1632 \ setf st | 1633 \ endif 1634 1635" Smarty templates 1636au BufNewFile,BufRead *.tpl setf smarty 1637 1638" SMIL or XML 1639au BufNewFile,BufRead *.smil 1640 \ if getline(1) =~ '<?\s*xml.*?>' | 1641 \ setf xml | 1642 \ else | 1643 \ setf smil | 1644 \ endif 1645 1646" SMIL or SNMP MIB file 1647au BufNewFile,BufRead *.smi 1648 \ if getline(1) =~ '\<smil\>' | 1649 \ setf smil | 1650 \ else | 1651 \ setf mib | 1652 \ endif 1653 1654" SMITH 1655au BufNewFile,BufRead *.smt,*.smith setf smith 1656 1657" Snobol4 and spitbol 1658au BufNewFile,BufRead *.sno,*.spt setf snobol4 1659 1660" SNMP MIB files 1661au BufNewFile,BufRead *.mib,*.my setf mib 1662 1663" Snort Configuration 1664au BufNewFile,BufRead *.hog,snort.conf,vision.conf setf hog 1665au BufNewFile,BufRead *.rules call dist#ft#FTRules() 1666 1667" SPARQL queries 1668au BufNewFile,BufRead *.rq,*.sparql setf sparql 1669 1670" Spec (Linux RPM) 1671au BufNewFile,BufRead *.spec setf spec 1672 1673" Speedup (AspenTech plant simulator) 1674au BufNewFile,BufRead *.speedup,*.spdata,*.spd setf spup 1675 1676" Slice 1677au BufNewFile,BufRead *.ice setf slice 1678 1679" Spice 1680au BufNewFile,BufRead *.sp,*.spice setf spice 1681 1682" Spyce 1683au BufNewFile,BufRead *.spy,*.spi setf spyce 1684 1685" Squid 1686au BufNewFile,BufRead squid.conf setf squid 1687 1688" SQL for Oracle Designer 1689au BufNewFile,BufRead *.tyb,*.typ,*.tyc,*.pkb,*.pks setf sql 1690 1691" SQL 1692au BufNewFile,BufRead *.sql call dist#ft#SQL() 1693 1694" SQLJ 1695au BufNewFile,BufRead *.sqlj setf sqlj 1696 1697" SQR 1698au BufNewFile,BufRead *.sqr,*.sqi setf sqr 1699 1700" OpenSSH configuration 1701au BufNewFile,BufRead ssh_config,*/.ssh/config setf sshconfig 1702au BufNewFile,BufRead */etc/ssh/ssh_config.d/*.conf setf sshconfig 1703 1704" OpenSSH server configuration 1705au BufNewFile,BufRead sshd_config setf sshdconfig 1706au BufNewFile,BufRead */etc/ssh/sshd_config.d/*.conf setf sshdconfig 1707 1708" Stata 1709au BufNewFile,BufRead *.ado,*.do,*.imata,*.mata setf stata 1710" Also *.class, but not when it's a Java bytecode file 1711au BufNewFile,BufRead *.class 1712 \ if getline(1) !~ "^\xca\xfe\xba\xbe" | setf stata | endif 1713 1714" SMCL 1715au BufNewFile,BufRead *.hlp,*.ihlp,*.smcl setf smcl 1716 1717" Stored Procedures 1718au BufNewFile,BufRead *.stp setf stp 1719 1720" Standard ML 1721au BufNewFile,BufRead *.sml setf sml 1722 1723" Sratus VOS command macro 1724au BufNewFile,BufRead *.cm setf voscm 1725 1726" Swift 1727au BufNewFile,BufRead *.swift setf swift 1728au BufNewFile,BufRead *.swift.gyb setf swiftgyb 1729 1730" Swift Intermediate Language 1731au BufNewFile,BufRead *.sil setf sil 1732 1733" Sysctl 1734au BufNewFile,BufRead */etc/sysctl.conf,*/etc/sysctl.d/*.conf setf sysctl 1735 1736" Systemd unit files 1737au BufNewFile,BufRead */systemd/*.{automount,dnssd,link,mount,netdev,network,nspawn,path,service,slice,socket,swap,target,timer} setf systemd 1738" Systemd overrides 1739au BufNewFile,BufRead */etc/systemd/*.conf.d/*.conf setf systemd 1740au BufNewFile,BufRead */etc/systemd/system/*.d/*.conf setf systemd 1741au BufNewFile,BufRead */.config/systemd/user/*.d/*.conf setf systemd 1742" Systemd temp files 1743au BufNewFile,BufRead */etc/systemd/system/*.d/.#* setf systemd 1744au BufNewFile,BufRead */etc/systemd/system/.#* setf systemd 1745au BufNewFile,BufRead */.config/systemd/user/*.d/.#* setf systemd 1746au BufNewFile,BufRead */.config/systemd/user/.#* setf systemd 1747 1748" Synopsys Design Constraints 1749au BufNewFile,BufRead *.sdc setf sdc 1750 1751" Sudoers 1752au BufNewFile,BufRead */etc/sudoers,sudoers.tmp setf sudoers 1753 1754" SVG (Scalable Vector Graphics) 1755au BufNewFile,BufRead *.svg setf svg 1756 1757" Tads (or Nroff or Perl test file) 1758au BufNewFile,BufRead *.t 1759 \ if !dist#ft#FTnroff() && !dist#ft#FTperl() | setf tads | endif 1760 1761" Tags 1762au BufNewFile,BufRead tags setf tags 1763 1764" TAK 1765au BufNewFile,BufRead *.tak setf tak 1766 1767" Task 1768au BufRead,BufNewFile {pending,completed,undo}.data setf taskdata 1769au BufRead,BufNewFile *.task setf taskedit 1770 1771" Tcl (JACL too) 1772au BufNewFile,BufRead *.tcl,*.tk,*.itcl,*.itk,*.jacl setf tcl 1773 1774" TealInfo 1775au BufNewFile,BufRead *.tli setf tli 1776 1777" Telix Salt 1778au BufNewFile,BufRead *.slt setf tsalt 1779 1780" Tera Term Language or Turtle 1781au BufRead,BufNewFile *.ttl 1782 \ if getline(1) =~ '^@\?\(prefix\|base\)' | 1783 \ setf turtle | 1784 \ else | 1785 \ setf teraterm | 1786 \ endif 1787 1788" Terminfo 1789au BufNewFile,BufRead *.ti setf terminfo 1790 1791" TeX 1792au BufNewFile,BufRead *.latex,*.sty,*.dtx,*.ltx,*.bbl setf tex 1793au BufNewFile,BufRead *.tex call dist#ft#FTtex() 1794 1795" ConTeXt 1796au BufNewFile,BufRead *.mkii,*.mkiv,*.mkvi,*.mkxl,*.mklx setf context 1797 1798" Texinfo 1799au BufNewFile,BufRead *.texinfo,*.texi,*.txi setf texinfo 1800 1801" TeX configuration 1802au BufNewFile,BufRead texmf.cnf setf texmf 1803 1804" Tidy config 1805au BufNewFile,BufRead .tidyrc,tidyrc,tidy.conf setf tidy 1806 1807" TF mud client 1808au BufNewFile,BufRead *.tf,.tfrc,tfrc setf tf 1809 1810" tmux configuration 1811au BufNewFile,BufRead {.,}tmux*.conf setf tmux 1812 1813" TOML 1814au BufNewFile,BufRead *.toml setf toml 1815 1816" TPP - Text Presentation Program 1817au BufNewFile,BufReadPost *.tpp setf tpp 1818 1819" Treetop 1820au BufRead,BufNewFile *.treetop setf treetop 1821 1822" Trustees 1823au BufNewFile,BufRead trustees.conf setf trustees 1824 1825" TSS - Geometry 1826au BufNewFile,BufReadPost *.tssgm setf tssgm 1827 1828" TSS - Optics 1829au BufNewFile,BufReadPost *.tssop setf tssop 1830 1831" TSS - Command Line (temporary) 1832au BufNewFile,BufReadPost *.tsscl setf tsscl 1833 1834" TWIG files 1835au BufNewFile,BufReadPost *.twig setf twig 1836 1837" Typescript or Qt translation file (which is XML) 1838au BufNewFile,BufReadPost *.ts 1839 \ if getline(1) =~ '<?xml' | 1840 \ setf xml | 1841 \ else | 1842 \ setf typescript | 1843 \ endif 1844 1845" TypeScript with React 1846au BufNewFile,BufRead *.tsx setf typescriptreact 1847 1848" Motif UIT/UIL files 1849au BufNewFile,BufRead *.uit,*.uil setf uil 1850 1851" Udev conf 1852au BufNewFile,BufRead */etc/udev/udev.conf setf udevconf 1853 1854" Udev permissions 1855au BufNewFile,BufRead */etc/udev/permissions.d/*.permissions setf udevperm 1856" 1857" Udev symlinks config 1858au BufNewFile,BufRead */etc/udev/cdsymlinks.conf setf sh 1859 1860" UnrealScript 1861au BufNewFile,BufRead *.uc setf uc 1862 1863" Updatedb 1864au BufNewFile,BufRead */etc/updatedb.conf setf updatedb 1865 1866" Upstart (init(8)) config files 1867au BufNewFile,BufRead */usr/share/upstart/*.conf setf upstart 1868au BufNewFile,BufRead */usr/share/upstart/*.override setf upstart 1869au BufNewFile,BufRead */etc/init/*.conf,*/etc/init/*.override setf upstart 1870au BufNewFile,BufRead */.init/*.conf,*/.init/*.override setf upstart 1871au BufNewFile,BufRead */.config/upstart/*.conf setf upstart 1872au BufNewFile,BufRead */.config/upstart/*.override setf upstart 1873 1874" Vera 1875au BufNewFile,BufRead *.vr,*.vri,*.vrh setf vera 1876 1877" Verilog HDL 1878au BufNewFile,BufRead *.v setf verilog 1879 1880" Verilog-AMS HDL 1881au BufNewFile,BufRead *.va,*.vams setf verilogams 1882 1883" SystemVerilog 1884au BufNewFile,BufRead *.sv,*.svh setf systemverilog 1885 1886" VHDL 1887au BufNewFile,BufRead *.hdl,*.vhd,*.vhdl,*.vbe,*.vst,*.vho setf vhdl 1888 1889" Vim script 1890au BufNewFile,BufRead *.vim,*.vba,.exrc,_exrc setf vim 1891 1892" Viminfo file 1893au BufNewFile,BufRead .viminfo,_viminfo setf viminfo 1894 1895" Virata Config Script File or Drupal module 1896au BufRead,BufNewFile *.hw,*.module,*.pkg 1897 \ if getline(1) =~ '<?php' | 1898 \ setf php | 1899 \ else | 1900 \ setf virata | 1901 \ endif 1902 1903" Visual Basic (also uses *.bas) or FORM 1904au BufNewFile,BufRead *.frm call dist#ft#FTVB("form") 1905 1906" SaxBasic is close to Visual Basic 1907au BufNewFile,BufRead *.sba setf vb 1908 1909" Vgrindefs file 1910au BufNewFile,BufRead vgrindefs setf vgrindefs 1911 1912" VRML V1.0c 1913au BufNewFile,BufRead *.wrl setf vrml 1914 1915" Vroom (vim testing and executable documentation) 1916au BufNewFile,BufRead *.vroom setf vroom 1917 1918" Vue.js Single File Component 1919au BufNewFile,BufRead *.vue setf vue 1920 1921" WebAssembly 1922au BufNewFile,BufRead *.wast,*.wat setf wast 1923 1924" Webmacro 1925au BufNewFile,BufRead *.wm setf webmacro 1926 1927" Wget config 1928au BufNewFile,BufRead .wgetrc,wgetrc setf wget 1929 1930" Website MetaLanguage 1931au BufNewFile,BufRead *.wml setf wml 1932 1933" Winbatch 1934au BufNewFile,BufRead *.wbt setf winbatch 1935 1936" WSML 1937au BufNewFile,BufRead *.wsml setf wsml 1938 1939" WPL 1940au BufNewFile,BufRead *.wpl setf xml 1941 1942" WvDial 1943au BufNewFile,BufRead wvdial.conf,.wvdialrc setf wvdial 1944 1945" CVS RC file 1946au BufNewFile,BufRead .cvsrc setf cvsrc 1947 1948" CVS commit file 1949au BufNewFile,BufRead cvs\d\+ setf cvs 1950 1951" WEB (*.web is also used for Winbatch: Guess, based on expecting "%" comment 1952" lines in a WEB file). 1953au BufNewFile,BufRead *.web 1954 \ if getline(1)[0].getline(2)[0].getline(3)[0].getline(4)[0].getline(5)[0] =~ "%" | 1955 \ setf web | 1956 \ else | 1957 \ setf winbatch | 1958 \ endif 1959 1960" Windows Scripting Host and Windows Script Component 1961au BufNewFile,BufRead *.ws[fc] setf wsh 1962 1963" XHTML 1964au BufNewFile,BufRead *.xhtml,*.xht setf xhtml 1965 1966" X Pixmap (dynamically sets colors, use BufEnter to make it work better) 1967au BufEnter *.xpm 1968 \ if getline(1) =~ "XPM2" | 1969 \ setf xpm2 | 1970 \ else | 1971 \ setf xpm | 1972 \ endif 1973au BufEnter *.xpm2 setf xpm2 1974 1975" XFree86 config 1976au BufNewFile,BufRead XF86Config 1977 \ if getline(1) =~ '\<XConfigurator\>' | 1978 \ let b:xf86conf_xfree86_version = 3 | 1979 \ endif | 1980 \ setf xf86conf 1981au BufNewFile,BufRead */xorg.conf.d/*.conf 1982 \ let b:xf86conf_xfree86_version = 4 | 1983 \ setf xf86conf 1984 1985" Xorg config 1986au BufNewFile,BufRead xorg.conf,xorg.conf-4 let b:xf86conf_xfree86_version = 4 | setf xf86conf 1987 1988" Xinetd conf 1989au BufNewFile,BufRead */etc/xinetd.conf setf xinetd 1990 1991" XS Perl extension interface language 1992au BufNewFile,BufRead *.xs setf xs 1993 1994" X resources file 1995au BufNewFile,BufRead .Xdefaults,.Xpdefaults,.Xresources,xdm-config,*.ad setf xdefaults 1996 1997" Xmath 1998au BufNewFile,BufRead *.msc,*.msf setf xmath 1999au BufNewFile,BufRead *.ms 2000 \ if !dist#ft#FTnroff() | setf xmath | endif 2001 2002" XML specific variants: docbk and xbl 2003au BufNewFile,BufRead *.xml call dist#ft#FTxml() 2004 2005" XMI (holding UML models) is also XML 2006au BufNewFile,BufRead *.xmi setf xml 2007 2008" CSPROJ files are Visual Studio.NET's XML-based project config files 2009au BufNewFile,BufRead *.csproj,*.csproj.user setf xml 2010 2011" Qt Linguist translation source and Qt User Interface Files are XML 2012" However, for .ts Typescript is more common. 2013au BufNewFile,BufRead *.ui setf xml 2014 2015" TPM's are RDF-based descriptions of TeX packages (Nikolai Weibull) 2016au BufNewFile,BufRead *.tpm setf xml 2017 2018" Xdg menus 2019au BufNewFile,BufRead */etc/xdg/menus/*.menu setf xml 2020 2021" ATI graphics driver configuration 2022au BufNewFile,BufRead fglrxrc setf xml 2023 2024" Web Services Description Language (WSDL) 2025au BufNewFile,BufRead *.wsdl setf xml 2026 2027" XLIFF (XML Localisation Interchange File Format) is also XML 2028au BufNewFile,BufRead *.xlf setf xml 2029au BufNewFile,BufRead *.xliff setf xml 2030 2031" XML User Interface Language 2032au BufNewFile,BufRead *.xul setf xml 2033 2034" X11 xmodmap (also see below) 2035au BufNewFile,BufRead *Xmodmap setf xmodmap 2036 2037" Xquery 2038au BufNewFile,BufRead *.xq,*.xql,*.xqm,*.xquery,*.xqy setf xquery 2039 2040" XSD 2041au BufNewFile,BufRead *.xsd setf xsd 2042 2043" Xslt 2044au BufNewFile,BufRead *.xsl,*.xslt setf xslt 2045 2046" Yacc 2047au BufNewFile,BufRead *.yy,*.yxx,*.y++ setf yacc 2048 2049" Yacc or racc 2050au BufNewFile,BufRead *.y call dist#ft#FTy() 2051 2052" Yaml 2053au BufNewFile,BufRead *.yaml,*.yml setf yaml 2054 2055" Raml 2056au BufNewFile,BufRead *.raml setf raml 2057 2058" yum conf (close enough to dosini) 2059au BufNewFile,BufRead */etc/yum.conf setf dosini 2060 2061" Zimbu 2062au BufNewFile,BufRead *.zu setf zimbu 2063" Zimbu Templates 2064au BufNewFile,BufRead *.zut setf zimbutempl 2065 2066" Zope 2067" dtml (zope dynamic template markup language), pt (zope page template), 2068" cpt (zope form controller page template) 2069au BufNewFile,BufRead *.dtml,*.pt,*.cpt call dist#ft#FThtml() 2070" zsql (zope sql method) 2071au BufNewFile,BufRead *.zsql call dist#ft#SQL() 2072 2073" Z80 assembler asz80 2074au BufNewFile,BufRead *.z8a setf z8a 2075 2076augroup END 2077 2078 2079" Source the user-specified filetype file, for backwards compatibility with 2080" Vim 5.x. 2081if exists("myfiletypefile") && filereadable(expand(myfiletypefile)) 2082 execute "source " . myfiletypefile 2083endif 2084 2085 2086" Check for "*" after loading myfiletypefile, so that scripts.vim is only used 2087" when there are no matching file name extensions. 2088" Don't do this for compressed files. 2089augroup filetypedetect 2090au BufNewFile,BufRead * 2091 \ if !did_filetype() && expand("<amatch>") !~ g:ft_ignore_pat 2092 \ | runtime! scripts.vim | endif 2093au StdinReadPost * if !did_filetype() | runtime! scripts.vim | endif 2094 2095 2096" Extra checks for when no filetype has been detected now. Mostly used for 2097" patterns that end in "*". E.g., "zsh*" matches "zsh.vim", but that's a Vim 2098" script file. 2099" Most of these should call s:StarSetf() to avoid names ending in .gz and the 2100" like are used. 2101 2102" More Apache style config files 2103au BufNewFile,BufRead */etc/proftpd/*.conf*,*/etc/proftpd/conf.*/* call s:StarSetf('apachestyle') 2104au BufNewFile,BufRead proftpd.conf* call s:StarSetf('apachestyle') 2105 2106" More Apache config files 2107au BufNewFile,BufRead access.conf*,apache.conf*,apache2.conf*,httpd.conf*,srm.conf* call s:StarSetf('apache') 2108au BufNewFile,BufRead */etc/apache2/*.conf*,*/etc/apache2/conf.*/*,*/etc/apache2/mods-*/*,*/etc/apache2/sites-*/*,*/etc/httpd/conf.d/*.conf* call s:StarSetf('apache') 2109 2110" Asterisk config file 2111au BufNewFile,BufRead *asterisk/*.conf* call s:StarSetf('asterisk') 2112au BufNewFile,BufRead *asterisk*/*voicemail.conf* call s:StarSetf('asteriskvm') 2113 2114" Bazaar version control 2115au BufNewFile,BufRead bzr_log.* setf bzr 2116 2117" Bazel build file 2118if !has("fname_case") 2119 au BufNewFile,BufRead *.BUILD,BUILD setf bzl 2120endif 2121 2122" BIND zone 2123au BufNewFile,BufRead */named/db.*,*/bind/db.* call s:StarSetf('bindzone') 2124 2125au BufNewFile,BufRead cabal.project.* call s:StarSetf('cabalproject') 2126 2127" Calendar 2128au BufNewFile,BufRead */.calendar/*, 2129 \*/share/calendar/*/calendar.*,*/share/calendar/calendar.* 2130 \ call s:StarSetf('calendar') 2131 2132" Changelog 2133au BufNewFile,BufRead [cC]hange[lL]og* 2134 \ if getline(1) =~ '; urgency=' 2135 \| call s:StarSetf('debchangelog') 2136 \|else 2137 \| call s:StarSetf('changelog') 2138 \|endif 2139 2140" Crontab 2141au BufNewFile,BufRead crontab,crontab.*,*/etc/cron.d/* call s:StarSetf('crontab') 2142 2143" dnsmasq(8) configuration 2144au BufNewFile,BufRead */etc/dnsmasq.d/* call s:StarSetf('dnsmasq') 2145 2146" Dracula 2147au BufNewFile,BufRead drac.* call s:StarSetf('dracula') 2148 2149" Fvwm 2150au BufNewFile,BufRead */.fvwm/* call s:StarSetf('fvwm') 2151au BufNewFile,BufRead *fvwmrc*,*fvwm95*.hook 2152 \ let b:fvwm_version = 1 | call s:StarSetf('fvwm') 2153au BufNewFile,BufRead *fvwm2rc* 2154 \ if expand("<afile>:e") == "m4" 2155 \| call s:StarSetf('fvwm2m4') 2156 \|else 2157 \| let b:fvwm_version = 2 | call s:StarSetf('fvwm') 2158 \|endif 2159 2160" Gedcom 2161au BufNewFile,BufRead */tmp/lltmp* call s:StarSetf('gedcom') 2162 2163" Git 2164au BufNewFile,BufRead */.gitconfig.d/*,/etc/gitconfig.d/* call s:StarSetf('gitconfig') 2165 2166" Gitolite 2167au BufNewFile,BufRead */gitolite-admin/conf/* call s:StarSetf('gitolite') 2168 2169" GTK RC 2170au BufNewFile,BufRead .gtkrc*,gtkrc* call s:StarSetf('gtkrc') 2171 2172" Jam 2173au BufNewFile,BufRead Prl*.*,JAM*.* call s:StarSetf('jam') 2174 2175" Jargon 2176au! BufNewFile,BufRead *jarg* 2177 \ if getline(1).getline(2).getline(3).getline(4).getline(5) =~? 'THIS IS THE JARGON FILE' 2178 \| call s:StarSetf('jargon') 2179 \|endif 2180 2181" Java Properties resource file (note: doesn't catch font.properties.pl) 2182au BufNewFile,BufRead *.properties_??_??_* call s:StarSetf('jproperties') 2183 2184" Kconfig 2185au BufNewFile,BufRead Kconfig.* call s:StarSetf('kconfig') 2186 2187" Lilo: Linux loader 2188au BufNewFile,BufRead lilo.conf* call s:StarSetf('lilo') 2189 2190" Logcheck 2191au BufNewFile,BufRead */etc/logcheck/*.d*/* call s:StarSetf('logcheck') 2192 2193" Makefile 2194au BufNewFile,BufRead [mM]akefile* call s:StarSetf('make') 2195 2196" Ruby Makefile 2197au BufNewFile,BufRead [rR]akefile* call s:StarSetf('ruby') 2198 2199" Mail (also matches muttrc.vim, so this is below the other checks) 2200au BufNewFile,BufRead {neo,}mutt[[:alnum:]._-]\\\{6\} setf mail 2201 2202au BufNewFile,BufRead reportbug-* call s:StarSetf('mail') 2203 2204" Modconf 2205au BufNewFile,BufRead */etc/modutils/* 2206 \ if executable(expand("<afile>")) != 1 2207 \| call s:StarSetf('modconf') 2208 \|endif 2209au BufNewFile,BufRead */etc/modprobe.* call s:StarSetf('modconf') 2210 2211" Mutt setup file 2212au BufNewFile,BufRead .mutt{ng,}rc*,*/.mutt{ng,}/mutt{ng,}rc* call s:StarSetf('muttrc') 2213au BufNewFile,BufRead mutt{ng,}rc*,Mutt{ng,}rc* call s:StarSetf('muttrc') 2214 2215" Neomutt setup file 2216au BufNewFile,BufRead .neomuttrc*,*/.neomutt/neomuttrc* call s:StarSetf('neomuttrc') 2217au BufNewFile,BufRead neomuttrc*,Neomuttrc* call s:StarSetf('neomuttrc') 2218 2219" Nroff macros 2220au BufNewFile,BufRead tmac.* call s:StarSetf('nroff') 2221 2222" OpenBSD hostname.if 2223au BufNewFile,BufRead /etc/hostname.* call s:StarSetf('config') 2224 2225" Pam conf 2226au BufNewFile,BufRead */etc/pam.d/* call s:StarSetf('pamconf') 2227 2228" Printcap and Termcap 2229au BufNewFile,BufRead *printcap* 2230 \ if !did_filetype() 2231 \| let b:ptcap_type = "print" | call s:StarSetf('ptcap') 2232 \|endif 2233au BufNewFile,BufRead *termcap* 2234 \ if !did_filetype() 2235 \| let b:ptcap_type = "term" | call s:StarSetf('ptcap') 2236 \|endif 2237 2238" ReDIF 2239" Only used when the .rdf file was not detected to be XML. 2240au BufRead,BufNewFile *.rdf call dist#ft#Redif() 2241 2242" Remind 2243au BufNewFile,BufRead .reminders* call s:StarSetf('remind') 2244 2245" SGML catalog file 2246au BufNewFile,BufRead sgml.catalog* call s:StarSetf('catalog') 2247 2248" avoid doc files being recognized a shell files 2249au BufNewFile,BufRead */doc/{,.}bash[_-]completion{,.d,.sh}{,/*} setf text 2250 2251" Shell scripts ending in a star 2252au BufNewFile,BufRead .bashrc*,.bash[_-]profile*,.bash[_-]logout*,.bash[_-]aliases*,bash-fc[-.]*,PKGBUILD*,APKBUILD*,*/{,.}bash[_-]completion{,.d,.sh}{,/*} call dist#ft#SetFileTypeSH("bash") 2253au BufNewFile,BufRead .kshrc* call dist#ft#SetFileTypeSH("ksh") 2254au BufNewFile,BufRead .profile* call dist#ft#SetFileTypeSH(getline(1)) 2255 2256" tcsh scripts ending in a star 2257au BufNewFile,BufRead .tcshrc* call dist#ft#SetFileTypeShell("tcsh") 2258 2259" csh scripts ending in a star 2260au BufNewFile,BufRead .login*,.cshrc* call dist#ft#CSH() 2261 2262" VHDL 2263au BufNewFile,BufRead *.vhdl_[0-9]* call s:StarSetf('vhdl') 2264 2265" Vim script 2266au BufNewFile,BufRead *vimrc* call s:StarSetf('vim') 2267 2268" Subversion commit file 2269au BufNewFile,BufRead svn-commit*.tmp setf svn 2270 2271" X resources file 2272au BufNewFile,BufRead Xresources*,*/app-defaults/*,*/Xresources/* call s:StarSetf('xdefaults') 2273 2274" XFree86 config 2275au BufNewFile,BufRead XF86Config-4* 2276 \ let b:xf86conf_xfree86_version = 4 | call s:StarSetf('xf86conf') 2277au BufNewFile,BufRead XF86Config* 2278 \ if getline(1) =~ '\<XConfigurator\>' 2279 \| let b:xf86conf_xfree86_version = 3 2280 \|endif 2281 \|call s:StarSetf('xf86conf') 2282 2283" X11 xmodmap 2284au BufNewFile,BufRead *xmodmap* call s:StarSetf('xmodmap') 2285 2286" Xinetd conf 2287au BufNewFile,BufRead */etc/xinetd.d/* call s:StarSetf('xinetd') 2288 2289" yum conf (close enough to dosini) 2290au BufNewFile,BufRead */etc/yum.repos.d/* call s:StarSetf('dosini') 2291 2292" Z-Shell script ending in a star 2293au BufNewFile,BufRead .zsh*,.zlog*,.zcompdump* call s:StarSetf('zsh') 2294au BufNewFile,BufRead zsh*,zlog* call s:StarSetf('zsh') 2295 2296 2297" Plain text files, needs to be far down to not override others. This avoids 2298" the "conf" type being used if there is a line starting with '#'. 2299au BufNewFile,BufRead *.text,README setf text 2300 2301" Help files match *.txt but should have a last line that is a modeline. 2302au BufNewFile,BufRead *.txt 2303 \ if getline('$') !~ 'vim:.*ft=help' 2304 \| setf text 2305 \| endif 2306 2307 2308" Use the filetype detect plugins. They may overrule any of the previously 2309" detected filetypes. 2310runtime! ftdetect/*.vim 2311 2312" NOTE: The above command could have ended the filetypedetect autocmd group 2313" and started another one. Let's make sure it has ended to get to a consistent 2314" state. 2315augroup END 2316 2317" Generic configuration file. Use FALLBACK, it's just guessing! 2318au filetypedetect BufNewFile,BufRead,StdinReadPost * 2319 \ if !did_filetype() && expand("<amatch>") !~ g:ft_ignore_pat 2320 \ && (getline(1) =~ '^#' || getline(2) =~ '^#' || getline(3) =~ '^#' 2321 \ || getline(4) =~ '^#' || getline(5) =~ '^#') | 2322 \ setf FALLBACK conf | 2323 \ endif 2324 2325 2326" If the GUI is already running, may still need to install the Syntax menu. 2327" Don't do it when the 'M' flag is included in 'guioptions'. 2328if has("menu") && has("gui_running") 2329 \ && !exists("did_install_syntax_menu") && &guioptions !~# "M" 2330 source <sfile>:p:h/menu.vim 2331endif 2332 2333" Function called for testing all functions defined here. These are 2334" script-local, thus need to be executed here. 2335" Returns a string with error messages (hopefully empty). 2336func! TestFiletypeFuncs(testlist) 2337 let output = '' 2338 for f in a:testlist 2339 try 2340 exe f 2341 catch 2342 let output = output . "\n" . f . ": " . v:exception 2343 endtry 2344 endfor 2345 return output 2346endfunc 2347 2348" Restore 'cpoptions' 2349let &cpo = s:cpo_save 2350unlet s:cpo_save 2351