codekingpro/portable-devtools
114k
1" Vim support file to detect file types2"3" Maintainer: The Vim Project <https://github.com/vim/vim>4" Last Change: 2026 Apr 085" Former Maintainer: Bram Moolenaar <Bram@vim.org>6 7" If the filetype can be detected from extension or file name(the final path component),8" please update `ft_from_name` and `ft_from_ext` in `runtime/autoload/dist/ft.vim`.9" Otherwise add a new autocmd in this file.10 11" Listen very carefully, I will say this only once12if exists("did_load_filetypes")13 finish14endif15let did_load_filetypes = 116 17" Line continuation is used here, remove 'C' from 'cpoptions'18let s:cpo_save = &cpo19set cpo&vim20 21augroup filetypedetect22 23" Ignored extensions24if exists("*fnameescape")25au BufNewFile,BufRead ?\+.orig,?\+.bak,?\+.old,?\+.new,?\+.dpkg-dist,?\+.dpkg-old,?\+.dpkg-new,?\+.dpkg-bak,?\+.pacsave,?\+.pacnew,?\+.pacsave,?\+.pacnew26 \ exe "doau filetypedetect BufRead " . fnameescape(expand("<afile>:r"))27au BufNewFile,BufRead *~28 \ let s:name = expand("<afile>") |29 \ let s:short = substitute(s:name, '\~\+$', '', '') |30 \ if s:name != s:short && s:short != "" |31 \ exe "doau filetypedetect BufRead " . fnameescape(s:short) |32 \ endif |33 \ unlet! s:name s:short34au BufNewFile,BufRead ?\+.in35 \ if expand("<afile>:t") != "configure.in" |36 \ exe "doau filetypedetect BufRead " . fnameescape(expand("<afile>:r")) |37 \ endif38elseif &verbose > 039 echomsg "Warning: some filetypes will not be recognized because this version of Vim does not have fnameescape()"40endif41 42" Pattern used to match file names which should not be inspected.43" Currently finds compressed files.44if !exists("g:ft_ignore_pat")45 let g:ft_ignore_pat = '\.\(Z\|gz\|bz2\|zip\|tgz\)$'46endif47 48" Function used for patterns that end in a star: don't set the filetype if the49" file name matches ft_ignore_pat.50" When using this, the entry should probably be further down below with the51" other StarSetf() calls.52func s:StarSetf(ft)53 if expand("<amatch>") !~ g:ft_ignore_pat54 exe 'setf ' . a:ft55 endif56endfunc57 58" Vim help file, set ft explicitly, because 'modeline' might be off59au BufNewFile,BufRead */doc/*.txt60 \ if getline('$') =~ '\%(^\|\s\)vim:\%(.*\%(:\|\s\)\)\?\%(ft\|filetype\)=help\%(:\|\s\|$\)'61 \| setf help62 \| endif63 64" Detect by name65au BufNewFile,BufRead * call dist#ft#DetectFromName()66 67" Abaqus or Trasys68au BufNewFile,BufRead *.inp call dist#ft#Check_inp()69 70" A2ps printing utility71au BufNewFile,BufRead */etc/a2ps.cfg,*/etc/a2ps/*.cfg,a2psrc,.a2psrc setf a2ps72 73" Ada (83, 9X, 95)74if has("vms")75 au BufNewFile,BufRead *.gpr,*.ada_m,*.adc setf ada76else77 au BufNewFile,BufRead *.gpr setf ada78endif79 80" Apache config file81au BufNewFile,BufRead .htaccess,*/etc/httpd/*.conf setf apache82au BufNewFile,BufRead */etc/apache2/sites-*/*.com setf apache83 84" ALSA configuration85au BufNewFile,BufRead .asoundrc,*/usr/share/alsa/alsa.conf,*/etc/asound.conf setf alsaconf86 87" APT config file88au BufNewFile,BufRead */.aptitude/config setf aptconf89" more generic pattern far down90 91" Arch Inventory file92au BufNewFile,BufRead .arch-inventory,=tagging-method setf arch93 94" Active Server Pages (with Visual Basic Script)95au BufNewFile,BufRead *.asa96 \ if exists("g:filetype_asa") |97 \ exe "setf " . g:filetype_asa |98 \ else |99 \ setf aspvbs |100 \ endif101 102" Active Server Pages (with Perl or Visual Basic Script)103au BufNewFile,BufRead *.asp104 \ if exists("g:filetype_asp") |105 \ exe "setf " . g:filetype_asp |106 \ elseif getline(1) . getline(2) . getline(3) =~? "perlscript" |107 \ setf aspperl |108 \ else |109 \ setf aspvbs |110 \ endif111 112" Grub (must be before pattern *.lst)113au BufNewFile,BufRead */boot/grub/menu.lst,*/boot/grub/grub.conf,*/etc/grub.conf setf grub114 115" Maxima, see:116" https://maxima.sourceforge.io/docs/manual/maxima_71.html#file_005ftype_005fmaxima117" Must be before the pattern *.mac.118" *.dem omitted - also used by gnuplot demos119" *.mc omitted - used by dist#ft#McSetf()120au BufNewFile,BufRead *.demo,*.dm{1,2,3,t},*.wxm,maxima-init.mac setf maxima121 122" ObjectScript routine or assembly123au BufNewFile,BufRead *.mac call dist#ft#FTmac()124 125" Assembly (all kinds)126" *.lst is not pure assembly, it has two extra columns (address, byte codes)127" *.[sS], *.[aA] usually Assembly - GNU128au BufNewFile,BufRead *.asm,*.[sS],*.[aA],*.lst call dist#ft#FTasm()129 130" BASIC or Visual Basic131au BufNewFile,BufRead *.bas call dist#ft#FTbas()132au BufNewFile,BufRead *.bi,*.bm call dist#ft#FTbas()133 134" Batch file for MSDOS. See dist#ft#FTsys for *.sys135" *.cmd is close to a Batch file, but on OS/2 Rexx files and TI linker command files also use *.cmd.136" lnk: `/* comment */`, `// comment`, and `--linker-option=value`137" rexx: `/* comment */`, `-- comment`138au BufNewFile,BufRead *.cmd139 \ if join(getline(1, 20), "\n") =~ 'MEMORY\|SECTIONS\|\%(^\|\n\)--\S\|\%(^\|\n\)//'140 \| setf lnk141 \| elseif getline(1) =~ '^/\*'142 \| setf rexx143 \| else144 \| setf dosbatch145 \| endif146" ABB RAPID or Batch file for MSDOS.147au BufNewFile,BufRead *.sys call dist#ft#FTsys()148if has("fname_case")149 au BufNewFile,BufRead *.Sys,*.SYS call dist#ft#FTsys()150endif151au BufNewFile,BufRead *.sysx setf rapid152if has("fname_case")153 au BufNewFile,BufRead *.sysX,*.Sysx,*.SysX,*.SYSX,*.SYSx setf rapid154endif155 156" Batch file for 4DOS157au BufNewFile,BufRead *.btm call dist#ft#FTbtm()158 159" BIND configuration160" sudoedit uses namedXXXX.conf161au BufNewFile,BufRead named*.conf,rndc*.conf,rndc*.key setf named162 163" BIND zone164au BufNewFile,BufRead *.db call dist#ft#BindzoneCheck('')165 166" Blade167au BufNewFile,BufRead *.blade.php setf blade168 169" Bitbake170au BufNewFile,BufRead *.bb,*.bbappend,*.bbclass,*/build/conf/*.conf,*/meta{-*,}/conf/*.conf,*/project-spec/configs/*.conf setf bitbake171 172" Blkid cache file173au BufNewFile,BufRead */etc/blkid.tab,*/etc/blkid.tab.old setf xml174 175" Bazel (https://bazel.build) and Buck2 (https://buck2.build/)176au BufNewFile,BufRead *.bzl,*.bxl,*.bazel,WORKSPACE,WORKSPACE.bzlmod setf bzl177if has("fname_case")178 " There is another check for BUILD and BUCK further below.179 au BufNewFile,BufRead *.BUILD,BUILD,BUCK setf bzl180endif181 182" Bundle config183au BufNewFile,BufRead */.bundle/config setf yaml184 185" C or lpc186au BufNewFile,BufRead *.c call dist#ft#FTlpc()187au BufNewFile,BufRead *.lpc,*.ulpc setf lpc188 189" m17n database files. */m17n/* matches installed files, */.m17n.d/* matches190" per-user config files, */m17n-db/* matches the git repo. (must be before191" *.cs)192au BufNewFile,BufRead */{m17n,.m17n.d,m17n-db}/*.{ali,cs,dir,flt,fst,lnm,mic,mim,tbl} setf m17ndb193 194" Cdrdao TOC or LaTeX \tableofcontents files195au BufNewFile,BufRead *.toc196 \ if getline(1) =~# '\\contentsline' |setf tex|else|setf cdrtoc|endif197 198" Cdrdao config199au BufNewFile,BufRead */etc/cdrdao.conf,*/etc/defaults/cdrdao,*/etc/default/cdrdao,.cdrdao setf cdrdaoconf200 201" Containers config files202au BufNewFile,BufRead */containers/containers.conf{,.d/*.conf} setf toml203au BufNewFile,BufRead */containers/containers.conf.modules/*.conf setf toml204au BufNewFile,BufRead */containers/registries.conf{,.d/*.conf} setf toml205au BufNewFile,BufRead */containers/storage.conf setf toml206 207" Cynlib208" .cc and .cpp files can be C++ or Cynlib.209au BufNewFile,BufRead *.cc210 \ if exists("cynlib_syntax_for_cc")|setf cynlib|else|setf cpp|endif211au BufNewFile,BufRead *.cpp212 \ if exists("cynlib_syntax_for_cpp")|setf cynlib|else|setf cpp|endif213 214" C++215if has("fname_case")216 au BufNewFile,BufRead *.C,*.H if !&fileignorecase | setf cpp | endif217endif218 219" .h files can be C, C++, Ch, Objective-C, or Objective-C++.220" Set g_filetype_h to set a different filetype221au BufNewFile,BufRead *.h call dist#ft#FTheader()222 223" Changelog224au BufNewFile,BufRead changelog.Debian,changelog.dch,NEWS.Debian,NEWS.dch,*/debian/changelog225 \ setf debchangelog226 227au BufNewFile,BufRead [cC]hange[lL]og228 \ if getline(1) =~ '; urgency='229 \| setf debchangelog230 \| else231 \| setf changelog232 \| endif233 234au BufNewFile,BufRead NEWS235 \ if getline(1) =~ '; urgency='236 \| setf debchangelog237 \| endif238 239" CHILL240au BufNewFile,BufRead *..ch setf chill241 242" Changes for WEB and CWEB or CHILL243au BufNewFile,BufRead *.ch call dist#ft#FTchange()244 245" Clang-format246au BufNewFile,BufRead .clang-format setf yaml247 248" Clang-tidy249au BufNewFile,BufRead .clang-tidy setf yaml250 251" Matplotlib252au BufNewFile,BufRead *.mplstyle,matplotlibrc setf yaml253 254" Clever or dtd255au BufNewFile,BufRead *.ent call dist#ft#FTent()256 257" Clipper, FoxPro, ABB RAPID or eviews258au BufNewFile,BufRead *.prg call dist#ft#FTprg()259if has("fname_case")260 au BufNewFile,BufRead *.Prg,*.PRG call dist#ft#FTprg()261endif262 263" Cmake264au BufNewFile,BufRead CMakeLists.txt,*.cmake,*.cmake.in setf cmake265 266" Cmusrc267au BufNewFile,BufRead */.cmus/{autosave,rc,command-history,*.theme} setf cmusrc268au BufNewFile,BufRead */cmus/{rc,*.theme} setf cmusrc269 270" Cobol271" cobol or zope form controller python script? (heuristic)272au BufNewFile,BufRead *.cpy273 \ if getline(1) =~ '^##' |274 \ setf python |275 \ else |276 \ setf cobol |277 \ endif278 279" Dockerfile; Podman uses the same syntax with name Containerfile280" Also see Dockerfile.* below.281au BufNewFile,BufRead Containerfile,Dockerfile,dockerfile,*.[dD]ockerfile setf dockerfile282 283" Enlightenment configuration files284au BufNewFile,BufRead *enlightenment/*.cfg setf c285 286" Eterm287au BufNewFile,BufRead *Eterm/*.cfg setf eterm288 289" Elixir or Euphoria290au BufNewFile,BufRead *.ex call dist#ft#ExCheck()291 292" Elixir293au BufNewFile,BufRead mix.lock,*.exs setf elixir294au BufNewFile,BufRead *.eex,*.leex setf eelixir295 296" Euphoria 3 or 4297au BufNewFile,BufRead *.eu,*.ew,*.exu,*.exw call dist#ft#EuphoriaCheck()298if has("fname_case")299 au BufNewFile,BufRead *.EU,*.EW,*.EX,*.EXU,*.EXW call dist#ft#EuphoriaCheck()300endif301 302" Execline (s6) scripts303au BufNewFile,BufRead *s6*/\(up\|down\|run\|finish\) setf execline304 305" Faust306au BufNewFile,BufRead *.dsp call dist#ft#FTdsp()307 308" Modula-3 configuration language (must be before *.cfg and *makefile)309au BufNewFile,BufRead *.quake,cm3.cfg setf m3quake310au BufNewFile,BufRead m3makefile,m3overrides setf m3build311 312" Many tools written in Python use dosini as their config313" like setuptools, pudb, coverage, pypi, gitlint, oelint-adv, pylint, bpython, mypy314" (must be before *.cfg)315au BufNewFile,BufRead {.,}pylintrc,*/bpython/config,*/mypy/config setf dosini316 317" Many tools written in Python use toml as their config, like black318au BufNewFile,BufRead black319 \ if getline(1) =~ 'tool.back'320 \| setf toml321 \| endif322 323" LXQt's programs use dosini as their config324au BufNewFile,BufRead */{lxqt,screengrab}/*.conf setf dosini325 326" Quake327au BufNewFile,BufRead *baseq[2-3]/*.cfg,*id1/*.cfg setf quake328au BufNewFile,BufRead *quake[1-3]/*.cfg setf quake329 330" LaTeX packages use LaTeX as their configuration, such as:331" ~/.texlive/texmf-config/tex/latex/hyperref/hyperref.cfg332" ~/.texlive/texmf-config/tex/latex/docstrip/docstrip.cfg333au BufNewFile,BufRead */tex/latex/**.cfg setf tex334 335" Configure files336au BufNewFile,BufRead *.cfg call dist#ft#FTcfg()337if has("fname_case")338 au BufNewFile,BufRead *.Cfg,*.CFG call dist#ft#FTcfg()339endif340 341" Debian autopkgtest342au BufNewFile,BufRead */debian/tests/control setf autopkgtest343 344" Debian Control345au BufNewFile,BufRead */{debian,DEBIAN}/control setf debcontrol346au BufNewFile,BufRead control347 \ if getline(1) =~ '^Source:\|^Package:'348 \| setf debcontrol349 \| elseif getline(1) =~ '^Tests:\|^Test-Command:'350 \| setf autopkgtest351 \| endif352 353" Debian Copyright354au BufNewFile,BufRead */debian/copyright setf debcopyright355au BufNewFile,BufRead copyright356 \ if getline(1) =~ '^Format:'357 \| setf debcopyright358 \| endif359 360" Debian Sources.list361au BufNewFile,BufRead */etc/apt/sources.list setf debsources362au BufNewFile,BufRead */etc/apt/sources.list.d/*.list setf debsources363au BufNewFile,BufRead */etc/apt/sources.list.d/*.sources setf deb822sources364 365" dnsmasq(8) configuration files366au BufNewFile,BufRead */etc/dnsmasq.conf setf dnsmasq367 368" the D language or dtrace369au BufNewFile,BufRead */dtrace/*.d setf dtrace370au BufNewFile,BufRead *.d call dist#ft#DtraceCheck()371 372" Dictd config373au BufNewFile,BufRead dictd*.conf setf dictdconf374 375" DEP3 formatted patch files376au BufNewFile,BufRead */debian/patches/* call dist#ft#Dep3patch()377 378" Diff files379au BufNewFile,BufRead *.patch380 \ if getline(1) =~# '^From [0-9a-f]\{40,\} Mon Sep 17 00:00:00 2001$' |381 \ setf gitsendemail |382 \ else |383 \ setf diff |384 \ endif385 386" Dircolors387au BufNewFile,BufRead .dir_colors,.dircolors,*/etc/DIR_COLORS setf dircolors388 389" Diva (with Skill) or InstallShield390au BufNewFile,BufRead *.rul391 \ if getline(1).getline(2).getline(3).getline(4).getline(5).getline(6) =~? 'InstallShield' |392 \ setf ishd |393 \ else |394 \ setf diva |395 \ endif396 397" DCL (Digital Command Language - vms) or DNS zone file398au BufNewFile,BufRead *.com call dist#ft#BindzoneCheck('dcl')399 400" Dune401au BufNewFile,BufRead jbuild,dune,dune-project,dune-workspace,dune-file setf dune402 403" Microsoft Module Definition or Modula-2404au BufNewFile,BufRead *.def call dist#ft#FTdef()405 406if has("fname_case")407 au BufNewFile,BufRead *.DEF setf modula2408endif409 410" dsl: DSSSL or Structurizr411au BufNewFile,BufRead *.dsl412 \ if getline(1) =~ '^\s*<\!' |413 \ setf dsl |414 \ else |415 \ setf structurizr |416 \ endif417 418" EDIF (*.edf,*.edif,*.edn,*.edo) or edn419au BufNewFile,BufRead *.ed\(f\|if\|o\) setf edif420au BufNewFile,BufRead *.edn421 \ if getline(1) =~ '^\s*(\s*edif\>' |422 \ setf edif |423 \ else |424 \ setf clojure |425 \ endif426 427" Eiffel or Specman or Euphoria428au BufNewFile,BufRead *.e,*.E call dist#ft#FTe()429 430" Elm Filter Rules file431au BufNewFile,BufRead filter-rules setf elmfilt432 433" Erlang Application Resource Files434au BufNewFile,BufRead *.app.src setf erlang435au BufNewFile,BufRead *.app call dist#ft#FTapp()436 437" ESMTP rc file438au BufNewFile,BufRead *esmtprc setf esmtprc439 440" Fennel441au BufNewFile,BufRead {,.}fennelrc setf fennel442 443" Flatpak config444au BufNewFile,BufRead */flatpak/repo/config setf dosini445 446" Fortran447if has("fname_case")448 au BufNewFile,BufRead *.F,*.FOR,*.FPP,*.FTN,*.F77,*.F90,*.F95,*.F03,*.F08 setf fortran449endif450au BufNewFile,BufRead *.for,*.fortran,*.fpp,*.ftn,*.f77,*.f90,*.f95,*.f03,*.f08 setf fortran451 452" Fortran or Forth453au BufNewFile,BufRead *.f call dist#ft#FTf()454 455" F# or Forth456au BufNewFile,BufRead *.fs call dist#ft#FTfs()457 458" GDB command files459au BufNewFile,BufRead .gdbinit,gdbinit,.cuda-gdbinit,cuda-gdbinit,.gdbearlyinit,gdbearlyinit,*.gdb setf gdb460 461" Gedcom462au BufNewFile,BufRead *.ged,lltxxxxx.txt setf gedcom463 464" Git465au BufNewFile,BufRead *.git/config,.gitconfig,*/etc/gitconfig setf gitconfig466au BufNewFile,BufRead */.config/git/config setf gitconfig467au BufNewFile,BufRead *.git/config.worktree setf gitconfig468au BufNewFile,BufRead *.git/worktrees/*/config.worktree setf gitconfig469au BufNewFile,BufRead .gitmodules,*.git/modules/*/config setf gitconfig470if exists('$XDG_CONFIG_HOME')471 au BufNewFile,BufRead $XDG_CONFIG_HOME/git/config setf gitconfig472 au BufNewFile,BufRead $XDG_CONFIG_HOME/git/attributes setf gitattributes473 au BufNewFile,BufRead $XDG_CONFIG_HOME/git/ignore setf gitignore474endif475au BufNewFile,BufRead .gitattributes,*.git/info/attributes setf gitattributes476au BufNewFile,BufRead */.config/git/attributes setf gitattributes477au BufNewFile,BufRead */etc/gitattributes setf gitattributes478au BufNewFile,BufRead .gitignore,*.git/info/exclude setf gitignore479au BufNewFile,BufRead */.config/git/ignore,*.prettierignore setf gitignore480au BufNewFile,BufRead */.config/fd/ignore,.fdignore,.ignore setf gitignore481au BufNewFile,BufRead .rgignore,.dockerignore,.containerignore setf gitignore482au BufNewFile,BufRead .npmignore,.vscodeignore setf gitignore483au BufNewFile,BufRead git-rebase-todo setf gitrebase484au BufNewFile,BufRead .gitsendemail.msg.?????? setf gitsendemail485au BufNewFile,BufRead *.git/*486 \ if getline(1) =~# '^\x\{40,\}\>\|^ref: ' |487 \ setf git |488 \ endif489 490" Gkrellmrc491au BufNewFile,BufRead gkrellmrc,gkrellmrc_? setf gkrellmrc492 493" GP scripts (2.0 and onward)494au BufNewFile,BufRead *.gp,.gprc setf gp495 496" GPG497au BufNewFile,BufRead */.gnupg/options setf gpg498au BufNewFile,BufRead */.gnupg/gpg.conf setf gpg499au BufNewFile,BufRead */usr/*/gnupg/options.skel setf gpg500if !empty($GNUPGHOME)501 au BufNewFile,BufRead $GNUPGHOME/options setf gpg502 au BufNewFile,BufRead $GNUPGHOME/gpg.conf setf gpg503endif504 505" Gitolite506au BufNewFile,BufRead {,.}gitolite.rc,example.gitolite.rc setf perl507 508" Gnuplot scripts509au BufNewFile,BufRead *.gpi,*.gnuplot,.gnuplot_history setf gnuplot510 511" GNU Radio Companion files512au BufNewFile,BufRead *.grc513 \ if getline(1) =~# '<?xml' |514 \ setf xml |515 \ else |516 \ setf yaml |517 \ endif518 519" Groovy520au BufNewFile,BufRead *.gradle,*.groovy,Jenkinsfile setf groovy521 522" Group file523au 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 group524 525" Hare526au BufNewFile,BufRead README call dist#ft#FTharedoc()527 528" Haskell529au BufNewFile,BufRead */{.,}cabal/config setf cabalconfig530au BufNewFile,BufRead cabal.config setf cabalconfig531au BufNewFile,BufRead *.persistentmodels setf haskellpersistent532 533" Tilde (must be before HTML)534au BufNewFile,BufRead *.t.html setf tilde535 536" Translate shell537au BufNewFile,BufRead init.trans,*/etc/translate-shell,.trans setf clojure538 539" HTML (.stm for server side, .shtml is server-side or superhtml)540au BufNewFile,BufRead *.html,*.htm,*.shtml,*.stm call dist#ft#FThtml()541 542" Host config543au BufNewFile,BufRead */etc/host.conf setf hostconf544 545" Hosts access546au BufNewFile,BufRead */etc/hosts.allow,*/etc/hosts.deny setf hostsaccess547 548" Hy549au BufNewFile,BufRead *.hy,.hy-history setf hy550 551" Hyprland Configuration language552au BufNewFile,BufRead */hypr/*.conf,hypr\(land\|paper\|idle\|lock\).conf setf hyprlang553 554" i3555au BufNewFile,BufRead */i3/config setf i3config556au BufNewFile,BufRead */.i3/config setf i3config557 558" sway559au BufNewFile,BufRead */sway/config setf swayconfig560au BufNewFile,BufRead */sway/config.d/* setf swayconfig561au BufNewFile,BufRead */.sway/config setf swayconfig562 563" IDL (Interface Description Language)564au BufNewFile,BufRead *.idl call dist#ft#FTidl()565 566" Icewm menu567au BufNewFile,BufRead */.icewm/menu setf icemenu568 569" Indent profile (must come before IDL *.pro!)570au BufNewFile,BufRead indent.pro call dist#ft#ProtoCheck('indent')571 572" IDL (Interactive Data Language), Prolog, Cproto or zsh module C573au BufNewFile,BufRead *.pro call dist#ft#ProtoCheck('idlang')574 575" Initng576au BufNewFile,BufRead */etc/initng/*/*.i,*.ii setf initng577 578" Intel HEX or ObjectScript routine579au BufNewFile,BufRead *.int call dist#ft#FTint()580 581" Innovation Data Processing582au BufNewFile,BufRead upstream.dat\c,upstream.*.dat\c,*.upstream.dat\c setf upstreamdat583au BufNewFile,BufRead fdrupstream.log,upstream.log\c,upstream.*.log\c,*.upstream.log\c,UPSTREAM-*.log\c setf upstreamlog584au BufNewFile,BufRead upstreaminstall.log\c,upstreaminstall.*.log\c,*.upstreaminstall.log\c setf upstreaminstalllog585au BufNewFile,BufRead usserver.log\c,usserver.*.log\c,*.usserver.log\c setf usserverlog586au BufNewFile,BufRead usw2kagt.log\c,usw2kagt.*.log\c,*.usw2kagt.log\c setf usw2kagtlog587 588" Java Properties resource file (note: doesn't catch font.properties.pl)589au BufNewFile,BufRead *.properties,*.properties_??,*.properties_??_?? setf jproperties590" Eclipse preference files use Java Properties syntax591au BufNewFile,BufRead org.eclipse.*.prefs setf jproperties592 593" JSONC (JSON with comments)594au BufNewFile,BufRead *.jsonc,.babelrc,.eslintrc,.jsfmtrc,bun.lock setf jsonc595au BufNewFile,BufRead .jshintrc,.jscsrc,.vsconfig,.hintrc,.swrc,[jt]sconfig*.json setf jsonc596" Visual Studio Code settings597au BufNewFile,BufRead ~/*/{Code,VSCodium}/User/*.json setf jsonc598 599" Just600au BufNewFile,BufRead \c{,*.}justfile,\c*.just setf just601 602" Kitty603au BufNewFile,BufRead kitty.conf,*/kitty/*.conf setf kitty604 605" Kuka Robot Language606au BufNewFile,BufRead *.src call dist#ft#FTsrc()607au BufNewFile,BufRead *.dat call dist#ft#FTdat()608au BufNewFile,BufRead *.sub setf krl609if has("fname_case")610 au BufNewFile,BufRead *.Src,*.SRC call dist#ft#FTsrc()611 au BufNewFile,BufRead *.Dat,*.DAT call dist#ft#FTdat()612 au BufNewFile,BufRead *.Sub,*.SUB setf krl613endif614 615" Lalrpop616au BufNewFile,Bufread *.lalrpop setf lalrpop617 618" Larch Shared Language619au BufNewFile,BufRead .lsl call dist#ft#FTlsl()620 621" Limits622au BufNewFile,BufRead */etc/limits,*/etc/*limits.conf,*/etc/*limits.d/*.conf setf limits623 624" LambdaProlog or SML (see dist#ft#FTmod for *.mod)625au BufNewFile,BufRead *.sig call dist#ft#FTsig()626 627" Ld loader628au BufNewFile,BufRead *.ld,*/ldscripts/* setf ld629 630" Libao631au BufNewFile,BufRead */etc/libao.conf,*/.libao setf libao632 633" Libsensors634au BufNewFile,BufRead */etc/sensors.conf,*/etc/sensors3.conf setf sensors635 636" LFTP637au BufNewFile,BufRead lftp.conf,.lftprc,*lftp/rc setf lftp638 639" Lifelines, LLVM, or Lex for C++640au BufNewFile,BufRead *.ll call dist#ft#FTll()641 642" Lisp (*.el = ELisp)643" *.jl was removed, it's also used for Julia, better skip than guess wrong.644if has("fname_case")645 au BufNewFile,BufRead *.lsp,*.lisp,*.asd,*.el,*.L,.emacs,.sawfishrc setf lisp646else647 au BufNewFile,BufRead *.lsp,*.lisp,*.asd,*.el,.emacs,.sawfishrc setf lisp648endif649 650" *.cl = Common Lisp or OpenCL651au BufNewFile,BufRead *.cl call dist#ft#FTcl()652 653" LiteStep RC files654au BufNewFile,BufRead */LiteStep/*/*.rc setf litestep655 656" Login access657au BufNewFile,BufRead */etc/login.access setf loginaccess658 659" Login defs660au BufNewFile,BufRead */etc/login.defs setf logindefs661 662" LOTOS or LaTeX \listoftables files663au BufNewFile,BufRead *.lot664 \ if getline(1) =~# '\\contentsline' |setf tex|else|setf lotos|endif665 666" Lua, Texlua667au BufNewFile,BufRead *.lua,*.tlu,.lua_history setf lua668 669" Luarocks670au BufNewFile,BufRead *.rockspec,rock_manifest setf lua671 672" Linden Scripting Language (Second Life)673au BufNewFile,BufRead *.lsl call dist#ft#FTlsl()674 675" M4676au BufNewFile,BufRead *.m4 call dist#ft#FTm4()677 678au BufNewFile,BufRead .m4_history setf m4679 680" Mail (for Elm, trn, mutt, muttng, rn, slrn, neomutt)681au 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 mail682 683" Mail aliases684au BufNewFile,BufRead */etc/mail/aliases,*/etc/aliases setf mailaliases685 686" Makefile687au BufNewFile,BufRead *[mM]akefile,*.mk,*.mak call dist#ft#FTmake()688au BufNewFile,BufRead Kbuild setf make689 690" Man config691au BufNewFile,BufRead */etc/man.conf,man.config setf manconf692 693" Map (UMN mapserver config file)694au BufNewFile,BufRead *.map695 \ if getline(1) =~ '^\*\+$' |696 \ setf lnkmap |697 \ else |698 \ setf map |699 \ endif700 701" Markdown702au BufNewFile,BufRead *.markdown,*.mdown,*.mkd,*.mkdn,*.mdwn,*.md703 \ if exists("g:filetype_md") |704 \ exe "setf " . g:filetype_md |705 \ else |706 \ setf markdown |707 \ endif708 709" Mathematica, Matlab, Murphi, Objective C or Octave710au BufNewFile,BufRead *.m call dist#ft#FTm()711 712" mbsync713au BufNewFile,BufRead *.mbsyncrc,isyncrc setf mbsync714 715" Mercurial (hg) commit file716au BufNewFile,BufRead hg-editor-*.txt setf hgcommit717 718" Mercurial config (looks like generic config file)719au BufNewFile,BufRead *.hgrc,*hgrc setf cfg720 721" MetaPost722au BufNewFile,BufRead *.mpxl,*.mpiv,*.mpvi let b:mp_metafun = 1 | setf mp723 724" MMIX or VMS makefile725au BufNewFile,BufRead *.mms call dist#ft#FTmms()726 727" ABB Rapid, Modula-2, Modsim III or LambdaProlog728au BufNewFile,BufRead *.mod call dist#ft#FTmod()729if has("fname_case")730 au BufNewFile,BufRead *.Mod,*.MOD call dist#ft#FTmod()731endif732au BufNewFile,BufRead *.modx setf rapid733if has("fname_case")734 au BufNewFile,BufRead *.modX,*.Modx,*.ModX,*.MODX,*.MODx setf rapid735endif736 737" Modula-3 (.m3, .i3, .mg, .ig)738au BufNewFile,BufRead *.[mi][3g] setf modula3739 740" Modconf741au BufNewFile,BufRead */etc/modules.conf,*/etc/modules,*/etc/conf.modules setf modconf742 743" Mplayer config744au BufNewFile,BufRead mplayer.conf,*/.mplayer/config setf mplayerconf745 746" Mysql747au BufNewFile,BufRead *.mysql,.mysql_history setf mysql748 749" Tcl Shell RC file750" Vivado journal file records REPL input in tcl syntax751" Vivado log file records REPL input in tcl syntax and output752au BufNewFile,BufRead tclsh.rc,vivado*.{jou,log} setf tcl753 754" M$ Resource files755" /etc/Muttrc.d/file.rc is muttrc756au BufNewFile,BufRead *.rc,*.rch757 \ if expand("<afile>") !~ "/etc/Muttrc.d/" |758 \ setf rc |759 \ endif760 761" Mojo762" Mojo files use either .mojo or .🔥 as extension763au BufNewFile,BufRead *.mojo,*.🔥 setf mojo764 765" Mutt setup file (also for Muttng)766au BufNewFile,BufRead Mutt{ng,}rc setf muttrc767 768" Neomutt log769au BufNewFile,BufRead *.neomuttdebug* setf neomuttlog770 771" Nano772au BufNewFile,BufRead */etc/nanorc,*.nanorc setf nanorc773 774" Nastran input/DMAP775"au BufNewFile,BufRead *.dat setf nastran776 777" Natural778au BufNewFile,BufRead *.NS[ACGLMNPS] setf natural779 780" Neofetch781au BufNewFile,BufRead */neofetch/config.conf setf sh782 783" Nginx784au BufNewFile,BufRead *.nginx,nginx*.conf,*nginx.conf,*/nginx/*.conf setf nginx785 786" Nroff/Groff/Troff (*.ms and *.t are checked below)787au BufNewFile,BufRead *.me788 \ if expand("<afile>") != "read.me" && expand("<afile>") != "click.me" |789 \ setf nroff |790 \ endif791au BufNewFile,BufRead *.tr,*.nr,*.roff,*.tmac setf nroff792au BufNewFile,BufRead *.groff,*.mom setf groff793au BufNewFile,BufRead *.[0-9],*.[013]p,*.[1-8]x,*.3{am,perl,pm,posix,type},*.n call dist#ft#FTnroff()794 795" Nroff or Objective C++796au BufNewFile,BufRead *.mm call dist#ft#FTmm()797 798" notmuch799au BufNewFile,BufRead .notmuch-config{,.*} setf dosini800au BufNewFile,BufRead ~/.config/notmuch/*/config setf dosini801if exists('$XDG_CONFIG_HOME')802 au BufNewFile,BufRead $XDG_CONFIG_HOME/notmuch/*/config setf dosini803endif804 805" OCaml806au BufNewFile,BufRead *.ml,*.mli,*.mll,*.mly,.ocamlinit,*.mlt,*.mlp,*.mlip,*.mli.cppo,*.ml.cppo setf ocaml807 808" Octave809au BufNewFile,BufRead octave.conf,.octaverc,octaverc,*/octave/history setf octave810 811" OPAM812au BufNewFile,BufRead opam,*.opam,*.opam.template,opam.locked,*.opam.locked setf opam813 814" OpenFOAM815au BufNewFile,BufRead fvSchemes,fvSolution,fvConstrains,fvModels,*/constant/g call dist#ft#FTfoam()816 817" OPL818au BufNewFile,BufRead *.[Oo][Pp][Ll] setf opl819 820" ini style config files, using # comments821au BufNewFile,BufRead */.aws/config,*/.aws/credentials,*/.aws/cli/alias setf confini822au BufNewFile,BufRead *.nmconnection setf confini823au BufNewFile,BufRead paru.conf setf confini824au BufNewFile,BufRead */{,.}gnuradio/*.conf setf confini825au BufNewFile,BufRead */gnuradio/conf.d/*.conf setf confini826 827" Pacman hooks828au BufNewFile,BufRead *.hook829 \ if getline(1) == '[Trigger]' |830 \ setf confini |831 \ endif832 833" Pacman makepkg834au BufNewFile,BufRead {.,}makepkg.conf setf sh835 836" Pacman log837au BufRead pacman.log* call s:StarSetf('pacmanlog')838 839" Pam conf840au BufNewFile,BufRead */etc/pam.conf setf pamconf841 842" Password file843au 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 passwd844 845" Pascal or Puppet manifest846au BufNewFile,BufRead *.pp call dist#ft#FTpp()847 848" Xilinx labtools project file or Lazarus program file849au BufNewFile,BufRead *.lpr850 \ if getline(1) =~# "<?xml" |851 \ setf xml |852 \ else |853 \ setf pascal |854 \ endif855 856" Perl or Prolog857if has("fname_case")858 au BufNewFile,BufRead *.pl,*.PL call dist#ft#FTpl()859else860 au BufNewFile,BufRead *.pl call dist#ft#FTpl()861endif862au BufNewFile,BufRead *.plx,*.al,*.psgi setf perl863 864" Perl, XPM or XPM2865au BufNewFile,BufRead *.pm866 \ if getline(1) =~ "XPM2" |867 \ setf xpm2 |868 \ elseif getline(1) =~ "XPM" |869 \ setf xpm |870 \ else |871 \ setf perl |872 \ endif873 874" Php, php3, php4, etc.875" Also Phtml (was used for PHP 2 in the past).876" Also .ctp for Cake template file.877" Also .phpt for php tests.878" Also .theme for Drupal theme files.879au BufNewFile,BufRead *.php,*.php\d,*.phtml,*.ctp,*.phpt,*.theme setf php880 881" Pinfo config882au BufNewFile,BufRead */etc/pinforc,*/.pinforc setf pinfo883 884" Pip requirements885au BufNewFile,BufRead *-requirements.txt setf requirements886au BufNewFile,BufRead requirements-*.txt setf requirements887au BufNewFile,BufRead constraints.txt setf requirements888au BufNewFile,BufRead requirements.in setf requirements889au BufNewFile,BufRead requirements/*.txt setf requirements890au BufNewFile,BufRead requires/*.txt setf requirements891 892" Pkl893au BufNewFile,BufRead PklProject,*.pkl,*.pcf,pkl-lsp://* setf pkl894 895" WIC kickstarter files896au BufNewFile,BufRead *.wks,*.wks.in,*.wks.inc setf wks897 898" Povray, Pascal, PHP or assembly899au BufNewFile,BufRead *.inc call dist#ft#FTinc()900 901" PowerShell902au BufNewFile,BufRead *.ps1,*.psd1,*.psm1,*.pssc setf ps1903au BufNewFile,BufRead *.ps1xml setf ps1xml904au BufNewFile,BufRead *.cdxml,*.psc1 setf xml905 906" Printcap and Termcap907au BufNewFile,BufRead *printcap908 \ let b:ptcap_type = "print" | setf ptcap909au BufNewFile,BufRead *termcap910 \ let b:ptcap_type = "term" | setf ptcap911 912" Progress or CWEB913au BufNewFile,BufRead *.w call dist#ft#FTprogress_cweb()914 915" Progress or assembly or Swig916au BufNewFile,BufRead *.i call dist#ft#FTi()917 918" Progress or Pascal919au BufNewFile,BufRead *.p call dist#ft#FTprogress_pascal()920 921" Software Distributor Product Specification File (POSIX 1387.2-1995)922au BufNewFile,BufRead INDEX,INFO923 \ if getline(1) =~ '^\s*\(distribution\|installed_software\|root\|bundle\|product\)\s*$' |924 \ setf psf |925 \ endif926 927" Protocols928au BufNewFile,BufRead */etc/protocols setf protocols929 930" Python, Python Shell Startup and Python Stub Files931" Quixote (Python-based web framework) and IPython932au BufNewFile,BufRead *.py,*.pyw,.pythonstartup,.pythonrc,.python_history,.jline-jython.history setf python933au BufNewFile,BufRead *.ipy,*.ptl,*.pyi,SConstruct setf python934 935" RCS file936au BufNewFile,BufRead *\,v setf rcs937 938" Registry for MS-Windows939au BufNewFile,BufRead *.reg940 \ if getline(1) =~? '^REGEDIT[0-9]*\s*$\|^Windows Registry Editor Version \d*\.\d*\s*$' | setf registry | endif941 942" Ripgrep rc943au BufNewFile,BufRead {.,}ripgreprc setf conf944 945" R Help file946if has("fname_case")947 au BufNewFile,BufRead *.rd,*.Rd setf rhelp948else949 au BufNewFile,BufRead *.rd setf rhelp950endif951 952" R noweb file953if has("fname_case")954 au BufNewFile,BufRead *.Rnw,*.rnw,*.Snw,*.snw setf rnoweb955else956 au BufNewFile,BufRead *.rnw,*.snw setf rnoweb957endif958 959" R Markdown file960if has("fname_case")961 au BufNewFile,BufRead *.Rmd,*.rmd,*.Smd,*.smd setf rmd962else963 au BufNewFile,BufRead *.rmd,*.smd setf rmd964endif965 966" R reStructuredText file967if has("fname_case")968 au BufNewFile,BufRead *.Rrst,*.rrst,*.Srst,*.srst setf rrst969else970 au BufNewFile,BufRead *.rrst,*.srst setf rrst971endif972 973" Rexx, Rebol or R974au BufNewFile,BufRead *.r,*.R call dist#ft#FTr()975 976" Remind977au BufNewFile,BufRead .reminders,*.remind,*.rem setf remind978 979" Rantfile and Rakefile is like Ruby980au BufNewFile,BufRead [rR]antfile,*.rant,[rR]akefile,*.rake setf ruby981 982" Rust983au BufNewFile,BufRead Cargo.lock,*/.cargo/config,*/.cargo/credentials setf toml984 985" Sather, TI linear assembly986au BufNewFile,BufRead *.sa call dist#ft#FTsa()987 988" SuperCollider989au BufNewFile,BufRead *.sc call dist#ft#FTsc()990 991au BufNewFile,BufRead *.quark setf supercollider992 993" scdoc994au BufNewFile,BufRead *.scd call dist#ft#FTscd()995 996 997" Sendmail .mc files are actually m4. Could also be MS Message text file or998" Maxima.999au BufNewFile,BufRead *.mc call dist#ft#McSetf()1000 1001" Services1002au BufNewFile,BufRead */etc/services setf services1003 1004" Service Location config1005au BufNewFile,BufRead */etc/slp.conf setf slpconf1006 1007" Service Location registration1008au BufNewFile,BufRead */etc/slp.reg setf slpreg1009 1010" Service Location SPI1011au BufNewFile,BufRead */etc/slp.spi setf slpspi1012 1013" Setserial config1014au BufNewFile,BufRead */etc/serial.conf setf setserial1015 1016" SGML1017au BufNewFile,BufRead *.sgm,*.sgml1018 \ if getline(1).getline(2).getline(3).getline(4).getline(5) =~? 'linuxdoc' |1019 \ setf sgmllnx |1020 \ elseif getline(1) =~ '<!DOCTYPE.*DocBook' || getline(2) =~ '<!DOCTYPE.*DocBook' |1021 \ let b:docbk_type = "sgml" |1022 \ let b:docbk_ver = 4 |1023 \ setf docbk |1024 \ else |1025 \ setf sgml |1026 \ endif1027 1028" SGMLDECL1029au BufNewFile,BufRead *.decl,*.dcl,*.dec1030 \ if getline(1).getline(2).getline(3) =~? '^<!SGML' |1031 \ setf sgmldecl |1032 \ endif1033 1034" Shell scripts (sh, ksh, bash, bash2, csh); Allow .profile_foo etc.1035" Gentoo ebuilds and Arch Linux PKGBUILDs are actually bash scripts.1036" NOTE: Patterns ending in a star are further down, these have lower priority.1037au BufNewFile,BufRead .bashrc,bashrc,bash.bashrc,.bash[_-]profile,.bash[_-]logout,.bash[_-]aliases,.bash[_-]history,bash-fc[-.],*.ebuild,PKGBUILD*,*.install,*.bash,*.eclass,PKGBUILD,*.bats,*.cygport call dist#ft#SetFileTypeSH("bash")1038au BufNewFile,BufRead .kshrc,*.ksh call dist#ft#SetFileTypeSH("ksh")1039au BufNewFile,BufRead */etc/profile,.profile,*.sh,*.envrc,.envrc.* call dist#ft#SetFileTypeSH(getline(1))1040" Shell script (Arch Linux) or PHP file (Drupal)1041au BufNewFile,BufRead *.install1042 \ if getline(1) =~ '<?php' |1043 \ setf php |1044 \ else |1045 \ call dist#ft#SetFileTypeSH("bash") |1046 \ endif1047 1048" tcsh scripts (patterns ending in a star further below)1049au BufNewFile,BufRead .tcshrc,*.tcsh,tcsh.tcshrc,tcsh.login call dist#ft#SetFileTypeShell("tcsh")1050 1051" csh scripts, but might also be tcsh scripts (on some systems csh is tcsh)1052" (patterns ending in a start further below)1053au BufNewFile,BufRead .login,.cshrc,csh.cshrc,csh.login,csh.logout,*.csh,.alias call dist#ft#CSH()1054 1055" Z-Shell script (patterns ending in a star further below)1056au BufNewFile,BufRead .zprofile,*/etc/zprofile,.zfbfmarks setf zsh1057au BufNewFile,BufRead .zshrc,.zshenv,.zlogin,.zlogout,.zcompdump,.zsh_history setf zsh1058au BufNewFile,BufRead *.zsh,*.zsh-theme,*.zunit setf zsh1059 1060" Scheme, Supertux configuration, Lips.js history, Guile init file ("racket" patterns are now separate, see above)1061au BufNewFile,BufRead *.scm,*.ss,*.sld,*.stsg,*/supertux2/config,.lips_repl_history,.guile setf scheme1062 1063" SiSU1064au BufNewFile,BufRead *.sst.meta,*.-sst.meta,*._sst.meta setf sisu1065 1066" Smalltalk (and ObjectScript, Rexx, TeX, and Visual Basic)1067au BufNewFile,BufRead *.cls call dist#ft#FTcls()1068 1069" SMIL or XML1070au BufNewFile,BufRead *.smil1071 \ if getline(1) =~ '<?\s*xml.*?>' |1072 \ setf xml |1073 \ else |1074 \ setf smil |1075 \ endif1076 1077" SMIL or SNMP MIB file1078au BufNewFile,BufRead *.smi1079 \ if getline(1) =~ '\<smil\>' |1080 \ setf smil |1081 \ else |1082 \ setf mib |1083 \ endif1084 1085" Snakemake1086au BufNewFile,BufRead Snakefile,*.smk setf snakemake1087 1088" Snort Configuration1089au BufNewFile,BufRead *.hog,snort.conf,vision.conf setf hog1090au BufNewFile,BufRead *.rules call dist#ft#FTRules()1091 1092" *.typ can be either SQL or Typst files1093au BufNewFile,BufRead *.typ call dist#ft#FTtyp()1094 1095" SQL1096au BufNewFile,BufRead *.sql call dist#ft#SQL()1097au BufNewFile,BufRead .sqlite_history setf sql1098 1099" OpenSSH configuration1100au BufNewFile,BufRead ssh_config,*/.ssh/config,*/.ssh/*.conf setf sshconfig1101au BufNewFile,BufRead */etc/ssh/ssh_config.d/*.conf setf sshconfig1102 1103" OpenSSH server configuration1104au BufNewFile,BufRead */etc/ssh/sshd_config.d/*.conf setf sshdconfig1105 1106" OpenVPN configuration1107au BufNewFile,BufRead */openvpn/*/*.conf setf openvpn1108 1109" Stata1110" Also *.class, but not when it's a Java bytecode file1111au BufNewFile,BufRead *.class1112 \ if getline(1) !~ "^\xca\xfe\xba\xbe" | setf stata | endif1113 1114" SPA JSON1115au BufNewFile,BufRead */pipewire/*.conf setf spajson1116au BufNewFile,BufRead */wireplumber/*.conf setf spajson1117 1118" Swift1119au BufNewFile,BufRead *.swift.gyb setf swiftgyb1120 1121" Swift Intermediate Language or SILE1122au BufNewFile,BufRead *.sil call dist#ft#FTsil()1123 1124" Sysctl1125au BufNewFile,BufRead */etc/sysctl.conf,*/etc/sysctl.d/*.conf setf sysctl1126 1127" Systemd unit files1128au BufNewFile,BufRead */systemd/*.{automount,dnssd,link,mount,netdev,network,nspawn,path,service,slice,socket,swap,target,timer} setf systemd1129" Systemd overrides1130au BufNewFile,BufRead */etc/systemd/*.conf.d/*.conf setf systemd1131au BufNewFile,BufRead */etc/systemd/system/*.d/*.conf setf systemd1132au BufNewFile,BufRead */.config/systemd/user/*.d/*.conf setf systemd1133" Systemd temp files1134au BufNewFile,BufRead */etc/systemd/system/*.d/.#* setf systemd1135au BufNewFile,BufRead */etc/systemd/system/.#* setf systemd1136au BufNewFile,BufRead */.config/systemd/user/*.d/.#* setf systemd1137au BufNewFile,BufRead */.config/systemd/user/.#* setf systemd1138" Podman Quadlet files1139au BufNewFile,BufRead */containers/systemd/*.{artifact,build,container,image,kube,network,pod,volume} setf systemd1140" Podman Quadlet rootless files not already captured by previous line1141au BufNewFile,BufRead */etc/containers/systemd/users/*/*.{artifact,build,container,image,kube,network,pod,volume} setf systemd1142au BufNewFile,BufRead */etc/containers/systemd/users/*.{artifact,build,container,image,kube,network,pod,volume} setf systemd1143" Podman Quadlet overrides1144au BufNewFile,BufRead */containers/systemd/*.d/*.conf setf systemd1145au BufNewFile,BufRead */etc/containers/systemd/users/*/*.d/*.conf setf systemd1146au BufNewFile,BufRead */etc/containers/systemd/users/*.d/*.conf setf systemd1147 1148" Sudoers1149au BufNewFile,BufRead */etc/sudoers,sudoers.tmp setf sudoers1150 1151" Tads (or Nroff or Perl test file)1152au BufNewFile,BufRead *.t1153 \ if !dist#ft#FTnroff() && !dist#ft#FTperl() | setf tads | endif1154 1155" Task1156au BufNewFile,BufRead {pending,completed,undo}.data setf taskdata1157au BufNewFile,BufRead *.task setf taskedit1158 1159" Tcl (JACL too)1160au BufNewFile,BufRead *.tcl,*.tm,*.tk,*.itcl,*.itk,*.jacl,.tclshrc,.wishrc,.tclsh-history setf tcl1161 1162" Tera Term Language or Turtle1163au BufNewFile,BufRead *.ttl1164 \ if getline(1) =~ '^@\?\(prefix\|base\)' |1165 \ setf turtle |1166 \ else |1167 \ setf teraterm |1168 \ endif1169 1170" TeX1171au BufNewFile,BufRead *.tex call dist#ft#FTtex()1172au BufNewFile,BufRead texdoc.cnf setf conf1173 1174" LaTeX packages will generate some medium LaTeX files during compiling1175" They should be ignored by .gitignore https://github.com/github/gitignore/blob/main/TeX.gitignore1176" Sometime we need to view its content for debugging1177au BufNewFile,BufRead *.{pgf,nlo,nls,thm,eps_tex,pygtex,pygstyle,clo,aux,brf,ind,lof,loe,nav,vrb,ins,tikz,bbx,cbx,beamer} setf tex1178 1179" TF (TinyFugue) mud client or terraform1180au BufNewFile,BufRead *.tf call dist#ft#FTtf()1181 1182" tmux configuration1183au BufNewFile,BufRead {.,}tmux*.conf setf tmux1184 1185" TOML1186au BufNewFile,BufRead *.toml,uv.lock setf toml1187 1188" TypeScript or Qt translation file (which is XML)1189au BufNewFile,BufRead *.ts1190 \ if getline(1) =~ '<?xml' |1191 \ setf xml |1192 \ else |1193 \ setf typescript |1194 \ endif1195au BufNewFile,BufRead .ts_node_repl_history setf typescript1196 1197" Udev conf1198au BufNewFile,BufRead */etc/udev/udev.conf setf udevconf1199 1200" Udev permissions