aboutsummaryrefslogblamecommitdiff
path: root/vim/filetype.vim
blob: 1c3c108aa46043162f0fb7154578cd00581bc9c3 (plain) (tree)
1
2
3
4
5
6
7
8
9




                                 


                                 
 
                                      

                      




                            







                                



                             







































































                                                  



                            



                            











                            







                                   
              










                            
              





                                
                      













                            
             
                            

                         













                              
                                                                  




























                                                      







                                                                         
           

                                  

                 
           
" Override filetypes.vim
if exists('g:did_load_filetypes')
  finish
endif
let g:did_load_filetypes = 1
if !has('autocmd') || &compatible
  finish
endif

" Use our own filetype detection rules
augroup filetypedetect
  autocmd!

  " AWK files
  autocmd BufNewFile,BufRead
        \ *.awk
        \ setfiletype awk
  " C files
  autocmd BufNewFile,BufRead
        \ *.c,*.h
        \ setfiletype c
  " C++ files
  autocmd BufNewFile,BufRead
        \ *.c++,*.cpp,*.cxx,*.hh
        \ setfiletype cpp
  " crontab(5) files
  autocmd BufNewFile,BufRead
        \ crontab,*/cron.*/*
        \ setfiletype crontab
  " CSS files
  autocmd BufNewFile,BufRead
        \ *.css
        \ setfiletype css
  " CSV files
  autocmd BufNewFile,BufRead
        \ *.csv
        \ setfiletype csv
  " Diff and patch files
  autocmd BufNewFile,BufRead
        \ *.diff,*.patch,*.rej
        \ setfiletype diff
  " Git commit messages
  autocmd BufNewFile,BufRead
        \ COMMIT_EDITMSG,MERGE_MSG,TAG_EDITMSG
        \ setfiletype gitcommit
  " Git config files
  autocmd BufNewFile,BufRead
        \ *.git*/config,.gitconfig,.gitmodules
        \ setfiletype gitconfig
  " GnuPG configuration files
  autocmd BufNewFile,BufRead
        \ *gnupg/options,*gnupg/gpg.conf
        \ setfiletype gpg
  " HTML files
  autocmd BufNewFile,BufRead
        \ *.html,*.htm
        \ setfiletype html
  " Java files
  autocmd BufNewFile,BufRead
        \ *.java,*.jav
        \ setfiletype java
  " JSON files
  autocmd BufNewFile,BufRead
        \ *.js
        \ setfiletype javascript
  " JSON files
  autocmd BufNewFile,BufRead
        \ *.json
        \ setfiletype json
  " Lex files
  autocmd BufNewFile,BufRead
        \ *.l,*.lex
        \ setfiletype lex
  " Lua files
  autocmd BufNewFile,BufRead
        \ *.lua
        \ setfiletype lua
  " m4 files
  autocmd BufNewFile,BufRead
        \ *.m4
        \ setfiletype m4
  " Mail messages
  autocmd BufNewFile,BufRead
        \ *.msg,mutt-*-*-*
        \ setfiletype mail
  " Makefiles
  autocmd BufNewFile,BufRead
        \ Makefile,makefile
        \ setfiletype make
  " Markdown files
  autocmd BufNewFile,BufRead
        \ *.markdown,*.md
        \ setfiletype markdown
  " Add automatic commands to detect .muttrc files
  autocmd BufNewFile,BufRead
        \ Muttrc,.muttrc,*muttrc.d/*.rc
        \ setfiletype muttrc
  " Perl 5 files
  autocmd BufNewFile,BufRead
        \ *.pl,*.pm,*.t,Makefile.PL
        \ setfiletype perl
  " Perl 6 files
  autocmd BufNewFile,BufRead
        \ *.p6,*.pl6,*.pm6
        \ setfiletype perl6
  " PHP files
  autocmd BufNewFile,BufRead
        \ *.php
        \ setfiletype php
  " Perl 5 POD files
  autocmd BufNewFile,BufRead
        \ *.pod
        \ setfiletype pod
  " Perl 6 POD files
  autocmd BufNewFile,BufRead
        \ *.pod6
        \ setfiletype pod6
  " Python files
  autocmd BufNewFile,BufRead
        \ *.py
        \ setfiletype python
  " Readline configuration file
  autocmd BufNewFile,BufRead
        \ .inputrc,inputrc
        \ setfiletype readline
  " Remind files
  autocmd BufNewFile,BufRead
        \ *.rem,*.remind,.reminders
        \ setfiletype remind
  " Bash shell
  autocmd BufNewFile,BufRead
        \ *.bash,
        \.bash_aliases,
        \.bash_logout,
        \.bash_profile,
        \.bashrc,
        \bash-fc-*,
        \bash_profile,
        \bashrc
        \ let b:is_bash = 1
        \ | setfiletype sh
  " Korn shell
  autocmd BufNewFile,BufRead
        \ *.ksh,
        \.kshrc,
        \kshrc
        \ let b:is_kornshell = 1
        \ | setfiletype sh
  " POSIX/Bourne shell
  autocmd BufNewFile,BufRead
        \ *.sh,
        \.profile,
        \.shinit,
        \.shrc,
        \.xinitrc,
        \/etc/default/*,
        \configure,
        \profile,
        \shinit,
        \shrc,
        \xinitrc
        \ let b:is_posix = 1
        \ | setfiletype sh
  " sed files
  autocmd BufNewFile,BufRead
        \ *.sed
        \ setfiletype sed
  " tmux configuration files
  autocmd BufNewFile,BufRead
        \ .tmux.conf,tmux.conf
        \ setfiletype tmux
  " roff files
  autocmd BufNewFile,BufRead
        \ *.[1-9],*.[1-9]df
        \ setfiletype nroff
  " Tab-separated (TSV) files
  autocmd BufNewFile,BufRead
        \ *.tsv
        \ setfiletype tsv
  " VimL files
  autocmd BufNewFile,BufRead
        \ *.vim,vimrc,*[._]vimrc,gvimrc,*[._]gvimrc,exrc,*[._]exrc
        \ setfiletype vim
  " .viminfo files
  autocmd BufNewFile,BufRead
        \ .viminfo
        \ setfiletype viminfo
  " Add automatic commands to find Xresources subfiles
  autocmd BufNewFile,BufRead
        \ .Xresources,*/.Xresources.d/*
        \ setfiletype xdefaults
  " XHTML files
  autocmd BufNewFile,BufRead
        \ *.xhtml,*.xht
        \ setfiletype xhtml
  " XML files
  autocmd BufNewFile,BufRead
        \ *.xml
        \ setfiletype xml
  " Yacc files
  autocmd BufNewFile,BufRead
        \ *.y,*.yy
        \ setfiletype yacc
  " YAML files
  autocmd BufNewFile,BufRead
        \ *.yaml
        \ setfiletype yaml
  " Z shell files
  autocmd BufNewFile,BufRead
        \ *.zsh,.zprofile,zprofile,.zshrc,zshrc
        \ setfiletype zsh

  " Load any extra rules in ftdetect directories
  runtime! ftdetect/*.vim

  " If we still don't have a filetype, run the scripts.vim file that will
  " examine actual file contents--but only the first one; don't load the
  " system one at all
  autocmd BufNewFile,BufRead,StdinReadPost
        \ *
        \   if !did_filetype()
        \ |    runtime scripts.vim
        \ | endif

augroup END