From 4b16fc4ecc4fdb002ad9c833af148918767ed806 Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Sun, 3 Jun 2018 00:28:53 +1200 Subject: Implement personal filetype.vim This implements only the syntax highlighting for file types I regularly use and care about, implemented in the way I want them to work, with files named per type in ftdetect/*.vim. I have chosen only file types with which I regularly deal and for which syntax highlighting and filetype/indent plugins are actually useful. Most other files, e.g. system config files I edit infrequently and only with sudoedit(8), don't really benefit from that. Much of this is just copied from the distribution filetype.vim file, but some of it I do specifically in a way I want, such as the shell decision logic. We'll see how well this works. --- vim/ftdetect/awk.vim | 9 ++++++++ vim/ftdetect/c.vim | 4 ++++ vim/ftdetect/cpp.vim | 4 ++++ vim/ftdetect/css.vim | 4 ++++ vim/ftdetect/csv.vim | 2 +- vim/ftdetect/diff.vim | 4 ++++ vim/ftdetect/gitcommit.vim | 4 ++++ vim/ftdetect/gitconfig.vim | 4 ++++ vim/ftdetect/gpg.vim | 4 ++++ vim/ftdetect/html.vim | 4 ++++ vim/ftdetect/java.vim | 4 ++++ vim/ftdetect/javascript.vim | 4 ++++ vim/ftdetect/json.vim | 4 ++++ vim/ftdetect/lex.vim | 4 ++++ vim/ftdetect/lua.vim | 4 ++++ vim/ftdetect/m4.vim | 4 ++++ vim/ftdetect/make.vim | 4 ++++ vim/ftdetect/markdown.vim | 4 ++++ vim/ftdetect/muttrc.vim | 4 ++-- vim/ftdetect/perl.vim | 9 ++++++++ vim/ftdetect/perl6.vim | 9 ++++++++ vim/ftdetect/php.vim | 4 ++++ vim/ftdetect/pod.vim | 4 ++++ vim/ftdetect/pod6.vim | 4 ++++ vim/ftdetect/python.vim | 9 ++++++++ vim/ftdetect/readline.vim | 4 ++++ vim/ftdetect/remind.vim | 4 ++++ vim/ftdetect/sh.vim | 50 ++++++++++++++++++++++++++++++++++++++------- vim/ftdetect/tmux.vim | 4 ++++ vim/ftdetect/troff.vim | 4 ++++ vim/ftdetect/tsv.vim | 2 +- vim/ftdetect/vim.vim | 4 ++++ vim/ftdetect/viminfo.vim | 4 ++++ vim/ftdetect/xdefaults.vim | 2 +- vim/ftdetect/xhtml.vim | 4 ++++ vim/ftdetect/xml.vim | 4 ++++ vim/ftdetect/yacc.vim | 4 ++++ vim/ftdetect/yaml.vim | 4 ++++ vim/ftdetect/zsh.vim | 9 ++++++++ 39 files changed, 209 insertions(+), 12 deletions(-) create mode 100644 vim/ftdetect/awk.vim create mode 100644 vim/ftdetect/c.vim create mode 100644 vim/ftdetect/cpp.vim create mode 100644 vim/ftdetect/css.vim create mode 100644 vim/ftdetect/diff.vim create mode 100644 vim/ftdetect/gitcommit.vim create mode 100644 vim/ftdetect/gitconfig.vim create mode 100644 vim/ftdetect/gpg.vim create mode 100644 vim/ftdetect/html.vim create mode 100644 vim/ftdetect/java.vim create mode 100644 vim/ftdetect/javascript.vim create mode 100644 vim/ftdetect/json.vim create mode 100644 vim/ftdetect/lex.vim create mode 100644 vim/ftdetect/lua.vim create mode 100644 vim/ftdetect/m4.vim create mode 100644 vim/ftdetect/make.vim create mode 100644 vim/ftdetect/markdown.vim create mode 100644 vim/ftdetect/perl.vim create mode 100644 vim/ftdetect/perl6.vim create mode 100644 vim/ftdetect/php.vim create mode 100644 vim/ftdetect/pod.vim create mode 100644 vim/ftdetect/pod6.vim create mode 100644 vim/ftdetect/python.vim create mode 100644 vim/ftdetect/readline.vim create mode 100644 vim/ftdetect/remind.vim create mode 100644 vim/ftdetect/tmux.vim create mode 100644 vim/ftdetect/troff.vim create mode 100644 vim/ftdetect/vim.vim create mode 100644 vim/ftdetect/viminfo.vim create mode 100644 vim/ftdetect/xhtml.vim create mode 100644 vim/ftdetect/xml.vim create mode 100644 vim/ftdetect/yacc.vim create mode 100644 vim/ftdetect/yaml.vim create mode 100644 vim/ftdetect/zsh.vim (limited to 'vim/ftdetect') diff --git a/vim/ftdetect/awk.vim b/vim/ftdetect/awk.vim new file mode 100644 index 00000000..ce845c52 --- /dev/null +++ b/vim/ftdetect/awk.vim @@ -0,0 +1,9 @@ +" AWK files +autocmd BufNewFile,BufRead + \ *.awk + \ setfiletype awk +autocmd BufNewFile,BufRead + \ * + \ if getline(1) =~ '^#!.*awk$' + \ | setfiletype awk + \ | endif diff --git a/vim/ftdetect/c.vim b/vim/ftdetect/c.vim new file mode 100644 index 00000000..77a73cb6 --- /dev/null +++ b/vim/ftdetect/c.vim @@ -0,0 +1,4 @@ +" C files +autocmd BufNewFile,BufRead + \ *.c,*.h + \ setfiletype c diff --git a/vim/ftdetect/cpp.vim b/vim/ftdetect/cpp.vim new file mode 100644 index 00000000..71dc59e5 --- /dev/null +++ b/vim/ftdetect/cpp.vim @@ -0,0 +1,4 @@ +" C++ files +autocmd BufNewFile,BufRead + \ *.c++,*.cpp,*.cxx,*.hh + \ setfiletype cpp diff --git a/vim/ftdetect/css.vim b/vim/ftdetect/css.vim new file mode 100644 index 00000000..bd98aa8e --- /dev/null +++ b/vim/ftdetect/css.vim @@ -0,0 +1,4 @@ +" CSS files +autocmd BufNewFile,BufRead + \ *.css + \ setfiletype css diff --git a/vim/ftdetect/csv.vim b/vim/ftdetect/csv.vim index a234c093..33468496 100644 --- a/vim/ftdetect/csv.vim +++ b/vim/ftdetect/csv.vim @@ -1,4 +1,4 @@ -" Add automatic commands to detect CSV files +" CSV files autocmd BufNewFile,BufRead \ *.csv \ setfiletype csv diff --git a/vim/ftdetect/diff.vim b/vim/ftdetect/diff.vim new file mode 100644 index 00000000..d19fc450 --- /dev/null +++ b/vim/ftdetect/diff.vim @@ -0,0 +1,4 @@ +" Diff and patch files +autocmd BufNewFile,BufRead + \ *.diff,*.patch,*.rej + \ setfiletype diff diff --git a/vim/ftdetect/gitcommit.vim b/vim/ftdetect/gitcommit.vim new file mode 100644 index 00000000..1c21544a --- /dev/null +++ b/vim/ftdetect/gitcommit.vim @@ -0,0 +1,4 @@ +" Git commit messages +autocmd BufNewFile,BufRead + \ COMMIT_EDITMSG,MERGE_MSG,TAG_EDITMSG + \ setfiletype gitcommit diff --git a/vim/ftdetect/gitconfig.vim b/vim/ftdetect/gitconfig.vim new file mode 100644 index 00000000..780e89b0 --- /dev/null +++ b/vim/ftdetect/gitconfig.vim @@ -0,0 +1,4 @@ +" Git config files +autocmd BufNewFile,BufRead + \ *.git*/config,.gitconfig,.gitmodules + \ setfiletype gitconfig diff --git a/vim/ftdetect/gpg.vim b/vim/ftdetect/gpg.vim new file mode 100644 index 00000000..ea6ec2f6 --- /dev/null +++ b/vim/ftdetect/gpg.vim @@ -0,0 +1,4 @@ +" GnuPG configuration files +autocmd BufNewFile,BufRead + \ *gnupg/options,*gnupg/gpg.conf + \ setfiletype gpg diff --git a/vim/ftdetect/html.vim b/vim/ftdetect/html.vim new file mode 100644 index 00000000..f8ab7ac5 --- /dev/null +++ b/vim/ftdetect/html.vim @@ -0,0 +1,4 @@ +" HTML files +autocmd BufNewFile,BufRead + \ *.html,*.htm + \ setfiletype html diff --git a/vim/ftdetect/java.vim b/vim/ftdetect/java.vim new file mode 100644 index 00000000..101816ea --- /dev/null +++ b/vim/ftdetect/java.vim @@ -0,0 +1,4 @@ +" Java files +autocmd BufNewFile,BufRead + \ *.java,*.jav + \ setfiletype java diff --git a/vim/ftdetect/javascript.vim b/vim/ftdetect/javascript.vim new file mode 100644 index 00000000..6f129960 --- /dev/null +++ b/vim/ftdetect/javascript.vim @@ -0,0 +1,4 @@ +" JSON files +autocmd BufNewFile,BufRead + \ *.js + \ setfiletype javascript diff --git a/vim/ftdetect/json.vim b/vim/ftdetect/json.vim new file mode 100644 index 00000000..fd27c845 --- /dev/null +++ b/vim/ftdetect/json.vim @@ -0,0 +1,4 @@ +" JSON files +autocmd BufNewFile,BufRead + \ *.json + \ setfiletype json diff --git a/vim/ftdetect/lex.vim b/vim/ftdetect/lex.vim new file mode 100644 index 00000000..23118468 --- /dev/null +++ b/vim/ftdetect/lex.vim @@ -0,0 +1,4 @@ +" Lex files +autocmd BufNewFile,BufRead + \ *.l,*.lex + \ setfiletype lex diff --git a/vim/ftdetect/lua.vim b/vim/ftdetect/lua.vim new file mode 100644 index 00000000..d6c635a0 --- /dev/null +++ b/vim/ftdetect/lua.vim @@ -0,0 +1,4 @@ +" Lua files +autocmd BufNewFile,BufRead + \ *.lua + \ setfiletype lua diff --git a/vim/ftdetect/m4.vim b/vim/ftdetect/m4.vim new file mode 100644 index 00000000..c7d97e80 --- /dev/null +++ b/vim/ftdetect/m4.vim @@ -0,0 +1,4 @@ +" m4 files +autocmd BufNewFile,BufRead + \ *.m4 + \ setfiletype m4 diff --git a/vim/ftdetect/make.vim b/vim/ftdetect/make.vim new file mode 100644 index 00000000..0ce0514b --- /dev/null +++ b/vim/ftdetect/make.vim @@ -0,0 +1,4 @@ +" Makefiles +autocmd BufNewFile,BufRead + \ Makefile,makefile + \ setfiletype make diff --git a/vim/ftdetect/markdown.vim b/vim/ftdetect/markdown.vim new file mode 100644 index 00000000..21ff2dcb --- /dev/null +++ b/vim/ftdetect/markdown.vim @@ -0,0 +1,4 @@ +" Markdown files +autocmd BufNewFile,BufRead + \ *.markdown,*.md + \ setfiletype markdown diff --git a/vim/ftdetect/muttrc.vim b/vim/ftdetect/muttrc.vim index 60d31575..48468b30 100644 --- a/vim/ftdetect/muttrc.vim +++ b/vim/ftdetect/muttrc.vim @@ -1,4 +1,4 @@ " Add automatic commands to detect .muttrc files autocmd BufNewFile,BufRead - \ **/.dotfiles/mutt/muttrc.d/*.rc,**/.muttrc.d/*.rc - \ setlocal filetype=muttrc + \ Muttrc,.muttrc,*muttrc.d/*.rc + \ setfiletype muttrc diff --git a/vim/ftdetect/perl.vim b/vim/ftdetect/perl.vim new file mode 100644 index 00000000..3e8ec3b9 --- /dev/null +++ b/vim/ftdetect/perl.vim @@ -0,0 +1,9 @@ +" Perl 5 files +autocmd BufNewFile,BufRead + \ *.pl,*.pm,*.t,Makefile.PL + \ setfiletype perl +autocmd BufNewFile,BufRead + \ * + \ if getline(1) =~ '^#!.*perl$' + \ | setfiletype perl + \ | endif diff --git a/vim/ftdetect/perl6.vim b/vim/ftdetect/perl6.vim new file mode 100644 index 00000000..2f7fce00 --- /dev/null +++ b/vim/ftdetect/perl6.vim @@ -0,0 +1,9 @@ +" Perl 6 files +autocmd BufNewFile,BufRead + \ *.p6,*.pl6,*.pm6 + \ setfiletype perl6 +autocmd BufNewFile,BufRead + \ * + \ if getline(1) =~ '^#!.*perl6$' + \ | setfiletype perl6 + \ | endif diff --git a/vim/ftdetect/php.vim b/vim/ftdetect/php.vim new file mode 100644 index 00000000..f28c7ab4 --- /dev/null +++ b/vim/ftdetect/php.vim @@ -0,0 +1,4 @@ +" PHP files +autocmd BufNewFile,BufRead + \ *.php + \ setfiletype php diff --git a/vim/ftdetect/pod.vim b/vim/ftdetect/pod.vim new file mode 100644 index 00000000..6817b3b4 --- /dev/null +++ b/vim/ftdetect/pod.vim @@ -0,0 +1,4 @@ +" Perl 5 POD files +autocmd BufNewFile,BufRead + \ *.pod + \ setfiletype pod diff --git a/vim/ftdetect/pod6.vim b/vim/ftdetect/pod6.vim new file mode 100644 index 00000000..4ae980a1 --- /dev/null +++ b/vim/ftdetect/pod6.vim @@ -0,0 +1,4 @@ +" Perl 6 POD files +autocmd BufNewFile,BufRead + \ *.pod6 + \ setfiletype pod6 diff --git a/vim/ftdetect/python.vim b/vim/ftdetect/python.vim new file mode 100644 index 00000000..50055005 --- /dev/null +++ b/vim/ftdetect/python.vim @@ -0,0 +1,9 @@ +" Python files +autocmd BufNewFile,BufRead + \ *.py + \ setfiletype python +autocmd BufNewFile,BufRead + \ * + \ if getline(1) =~ '^#!.*python[23]\?$' + \ | setfiletype python + \ | endif diff --git a/vim/ftdetect/readline.vim b/vim/ftdetect/readline.vim new file mode 100644 index 00000000..be2565c3 --- /dev/null +++ b/vim/ftdetect/readline.vim @@ -0,0 +1,4 @@ +" Readline configuration file +autocmd BufNewFile,BufRead + \ .inputrc,inputrc + \ setfiletype readline diff --git a/vim/ftdetect/remind.vim b/vim/ftdetect/remind.vim new file mode 100644 index 00000000..f153ad25 --- /dev/null +++ b/vim/ftdetect/remind.vim @@ -0,0 +1,4 @@ +" Remind files +autocmd BufNewFile,BufRead + \ *.rem,*.remind,.reminders + \ setfiletype remind diff --git a/vim/ftdetect/sh.vim b/vim/ftdetect/sh.vim index 880f08e9..1169b744 100644 --- a/vim/ftdetect/sh.vim +++ b/vim/ftdetect/sh.vim @@ -1,19 +1,55 @@ -" Add automatic commands to choose shell flavours based on filename pattern +" Shell script files; these are hard to detect accurately -" Names/paths of things that are Bash shell script +" Bash filename patterns autocmd BufNewFile,BufRead - \ **/.dotfiles/bash/**,bash-fc-* + \ *.bash, + \.bash_aliases, + \.bash_logout, + \.bash_profile, + \.bashrc, + \bash-fc-*, + \bash_profile, + \bashrc \ let b:is_bash = 1 \ | setfiletype sh -" Names/paths of things that are Korn shell script +" Korn shell filename patterns autocmd BufNewFile,BufRead - \ **/.dotfiles/ksh/**,.kshrc,*.ksh + \ *.ksh, + \.kshrc, + \kshrc \ let b:is_kornshell = 1 \ | setfiletype sh -" Names/paths of things that are POSIX shell script +" POSIX/Bourne shell filename patterns autocmd BufNewFile,BufRead - \ **/.dotfiles/sh/**,.shinit,.shrc,.xinitrc,/etc/default/* + \ *.sh, + \.profile, + \.shinit, + \.shrc, + \.xinitrc, + \/etc/default/*, + \configure, + \profile, + \shinit, + \shrc, + \xinitrc \ let b:is_posix = 1 \ | setfiletype sh + +" If this file has a shebang, and we haven't already decided it's Bash or +" Korn shell, use the shebang to decide +autocmd BufNewFile,BufRead + \ * + \ if !exists('b:is_bash') && !exists('b:is_kornshell') + \ | if getline(1) =~ '^#!.*bash$' + \ | let b:is_bash = 1 + \ | setfiletype sh + \ | elseif getline(1) =~ '^#!.*ksh$' + \ | let b:is_ksh = 1 + \ | setfiletype sh + \ | elseif getline(1) =~ '^#!.*sh$' + \ | let b:is_posix = 1 + \ | setfiletype sh + \ | endif + \ | endif diff --git a/vim/ftdetect/tmux.vim b/vim/ftdetect/tmux.vim new file mode 100644 index 00000000..4a245586 --- /dev/null +++ b/vim/ftdetect/tmux.vim @@ -0,0 +1,4 @@ +" tmux configuration files +autocmd BufNewFile,BufRead + \ .tmux.conf,tmux.conf + \ setfiletype tmux diff --git a/vim/ftdetect/troff.vim b/vim/ftdetect/troff.vim new file mode 100644 index 00000000..4bd27f6a --- /dev/null +++ b/vim/ftdetect/troff.vim @@ -0,0 +1,4 @@ +" roff files +autocmd BufNewFile,BufRead + \ *.[1-9],*.[1-9]df + \ setfiletype nroff diff --git a/vim/ftdetect/tsv.vim b/vim/ftdetect/tsv.vim index a345ac65..d6a0a71d 100644 --- a/vim/ftdetect/tsv.vim +++ b/vim/ftdetect/tsv.vim @@ -1,4 +1,4 @@ -" Add automatic commands to detect TSV files +" Tab-separated (TSV) files autocmd BufNewFile,BufRead \ *.tsv \ setfiletype tsv diff --git a/vim/ftdetect/vim.vim b/vim/ftdetect/vim.vim new file mode 100644 index 00000000..ca1c26c4 --- /dev/null +++ b/vim/ftdetect/vim.vim @@ -0,0 +1,4 @@ +" VimL files +autocmd BufNewFile,BufRead + \ *.vim,vimrc,*[._]vimrc,exrc,*[._]exrc + \ setfiletype vim diff --git a/vim/ftdetect/viminfo.vim b/vim/ftdetect/viminfo.vim new file mode 100644 index 00000000..31a8c704 --- /dev/null +++ b/vim/ftdetect/viminfo.vim @@ -0,0 +1,4 @@ +" .viminfo files +autocmd BufNewFile,BufRead + \ .viminfo + \ setfiletype viminfo diff --git a/vim/ftdetect/xdefaults.vim b/vim/ftdetect/xdefaults.vim index f45a22a7..896b2e32 100644 --- a/vim/ftdetect/xdefaults.vim +++ b/vim/ftdetect/xdefaults.vim @@ -1,4 +1,4 @@ " Add automatic commands to find Xresources subfiles autocmd BufNewFile,BufRead - \ **/.Xresources.d/* + \ .Xresources,*/.Xresources.d/* \ setfiletype xdefaults diff --git a/vim/ftdetect/xhtml.vim b/vim/ftdetect/xhtml.vim new file mode 100644 index 00000000..adfb1cb5 --- /dev/null +++ b/vim/ftdetect/xhtml.vim @@ -0,0 +1,4 @@ +" XHTML files +autocmd BufNewFile,BufRead + \ *.xhtml,*.xht + \ setfiletype xhtml diff --git a/vim/ftdetect/xml.vim b/vim/ftdetect/xml.vim new file mode 100644 index 00000000..7228e0f3 --- /dev/null +++ b/vim/ftdetect/xml.vim @@ -0,0 +1,4 @@ +" XML files +autocmd BufNewFile,BufRead + \ *.xml + \ setfiletype xml diff --git a/vim/ftdetect/yacc.vim b/vim/ftdetect/yacc.vim new file mode 100644 index 00000000..e3cb5ee8 --- /dev/null +++ b/vim/ftdetect/yacc.vim @@ -0,0 +1,4 @@ +" Yacc files +autocmd BufNewFile,BufRead + \ *.y,*.yy + \ setfiletype yacc diff --git a/vim/ftdetect/yaml.vim b/vim/ftdetect/yaml.vim new file mode 100644 index 00000000..3bf32b53 --- /dev/null +++ b/vim/ftdetect/yaml.vim @@ -0,0 +1,4 @@ +" YAML files +autocmd BufNewFile,BufRead + \ *.yaml + \ setfiletype yaml diff --git a/vim/ftdetect/zsh.vim b/vim/ftdetect/zsh.vim new file mode 100644 index 00000000..1bcde981 --- /dev/null +++ b/vim/ftdetect/zsh.vim @@ -0,0 +1,9 @@ +" Z shell files +autocmd BufNewFile,BufRead + \ *.zsh,.zprofile,zprofile,.zshrc,zshrc + \ setfiletype zsh +autocmd BufNewFile,BufRead + \ * + \ if getline(1) =~ '^#!.*zsh$' + \ | setfiletype zsh + \ | endif -- cgit v1.2.3