From 2f9d1886f58d38f809e3bbeb7393501acac119b9 Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Sat, 2 Jun 2018 18:12:11 +1200 Subject: Upgrade mail_mutt.vim plugin to v0.2.0 --- vim/bundle/mail_mutt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vim/bundle/mail_mutt b/vim/bundle/mail_mutt index 8f417d2a..3e0e4306 160000 --- a/vim/bundle/mail_mutt +++ b/vim/bundle/mail_mutt @@ -1 +1 @@ -Subproject commit 8f417d2ac92b1247b24103963e64bf63d627de39 +Subproject commit 3e0e4306641a759758a4eb746708f0efec9cc7e8 -- cgit v1.2.3 From a8d03cf95cf37837743f2c271dc8efd071fc0b67 Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Sat, 2 Jun 2018 18:17:55 +1200 Subject: Use full commands in buffer cycle mappings --- vim/config/buffers.vim | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vim/config/buffers.vim b/vim/config/buffers.vim index ddd40b9f..b5a0151b 100644 --- a/vim/config/buffers.vim +++ b/vim/config/buffers.vim @@ -8,7 +8,7 @@ endif " Cycle back and forth through buffers. nnoremap \ [b - \ :bp + \ :bprevious nnoremap \ ]b - \ :bn + \ :bnext -- cgit v1.2.3 From 78a853300ef1d0ea1da313d781bb251beb8e51a6 Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Sat, 2 Jun 2018 21:07:10 +1200 Subject: Rebuild help tags after installing bundle --- Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/Makefile b/Makefile index 2b494a91..3718e2e5 100644 --- a/Makefile +++ b/Makefile @@ -522,6 +522,7 @@ install-vim-bundle: install-vim-config find vim/bundle/*/*/* \ -type f -exec sh -c \ 'cp -p -- "$$1" $(VIMDIR)/"$${1#vim/bundle/*/}"' _ {} \; + vim -eT dumb -c 'helptags $(VIMDIR)/doc' -c quit install-vim-compiler: mkdir -p -- $(VIMDIR)/compiler -- cgit v1.2.3 From 8b9887ad91f4374069afe387acc5df1c90f23c0c Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Sat, 2 Jun 2018 21:46:35 +1200 Subject: Refactor Vim distribution plugin/macro handling Intelligently choose how to load matchit.vim, and clean up the short-circuit variables for the unwanted distribution plugins in an "after" plugin script. --- Makefile | 11 +++++++++++ vim/after/plugin/dist.vim | 10 ++++++++++ vim/config/dist.vim | 30 ++++++++++++++++++++++++++++++ vim/config/packages.vim | 5 +++++ vim/config/plugin.vim | 33 --------------------------------- vim/plugin/macros.vim | 5 +++++ 6 files changed, 61 insertions(+), 33 deletions(-) create mode 100644 vim/after/plugin/dist.vim create mode 100644 vim/config/dist.vim create mode 100644 vim/config/packages.vim delete mode 100644 vim/config/plugin.vim create mode 100644 vim/plugin/macros.vim diff --git a/Makefile b/Makefile index 3718e2e5..940ae9ef 100644 --- a/Makefile +++ b/Makefile @@ -41,6 +41,7 @@ install-vim-after \ install-vim-after-ftdetect \ install-vim-after-indent \ + install-vim-after-plugin \ install-vim-after-syntax \ install-vim-bundle \ install-vim-compiler \ @@ -50,6 +51,7 @@ install-vim-gui \ install-vim-gui-config \ install-vim-indent \ + install-vim-plugin \ install-vint \ install-wget \ install-x \ @@ -498,6 +500,7 @@ install-vim: install-vim-after \ install-vim-after: install-vim-after-ftplugin \ install-vim-after-indent \ + install-vim-after-plugin \ install-vim-after-syntax install-vim-after-ftplugin: @@ -511,6 +514,10 @@ install-vim-after-indent: mkdir -p $(VIMDIR)/after/indent cp -p -- vim/after/indent/*.vim $(VIMDIR)/after/indent +install-vim-after-plugin: + mkdir -p $(VIMDIR)/after/plugin + cp -p -- vim/after/plugin/*.vim $(VIMDIR)/after/plugin + install-vim-after-syntax: mkdir -p $(VIMDIR)/after/syntax cp -p -- vim/after/syntax/*.vim $(VIMDIR)/after/syntax @@ -551,6 +558,10 @@ install-vim-gui: install-vim \ install-vim-gui-config: cp -p -- vim/gvimrc $(HOME)/.gvimrc +install-vim-plugin: + mkdir -p -- $(VIMDIR)/plugin + cp -p -- vim/plugin/*.vim $(VIMDIR)/plugin + install-vint: cp -p -- vint/vintrc.yaml $(HOME)/.vintrc.yaml diff --git a/vim/after/plugin/dist.vim b/vim/after/plugin/dist.vim new file mode 100644 index 00000000..4613925f --- /dev/null +++ b/vim/after/plugin/dist.vim @@ -0,0 +1,10 @@ +" Clean up the short-circuiting variables from config/plugins.vim +unlet! g:loaded_getscriptPlugin +unlet! g:loaded_vimballPlugin +unlet! g:loaded_logiPat +unlet! g:loaded_netrwPlugin +unlet! g:loaded_rrhelper +unlet! g:loaded_spellfile_plugin +unlet! g:loaded_gzip +unlet! g:loaded_tarPlugin +unlet! g:loaded_zipPlugin diff --git a/vim/config/dist.vim b/vim/config/dist.vim new file mode 100644 index 00000000..0a20be48 --- /dev/null +++ b/vim/config/dist.vim @@ -0,0 +1,30 @@ +" Disable most core plugin stuff that I don't use; after/plugin/dist.vim +" clears these variables later +if has('eval') + + " 2html.vim is often useful, so keep that + " matchparen.vim I use constantly + + " I handle versioning plugins manually, and have never used .vba + let g:loaded_getscriptPlugin = 1 + let g:loaded_vimballPlugin = 1 + + " This is what grep, sed, Awk, and Perl are for + let g:loaded_logiPat = 1 + + " ^Z, my dudes + let g:loaded_netrwPlugin = 1 + + " Vim servers? What is this, Emacs? + let g:loaded_rrhelper = 1 + + " System dictionaries plus custom per-machine spell files are fine + let g:loaded_spellfile_plugin = 1 + + " If I want to read a file or a file archived within it I'll decompress or + " unarchive it myself; a text editor should not do this + let g:loaded_gzip = 1 + let g:loaded_tarPlugin = 1 + let g:loaded_zipPlugin = 1 + +endif diff --git a/vim/config/packages.vim b/vim/config/packages.vim new file mode 100644 index 00000000..f03595eb --- /dev/null +++ b/vim/config/packages.vim @@ -0,0 +1,5 @@ +" Add the packaged version of matchit.vim included in the distribution, if +" possible; after/plugin/macros.vim loads this for older Vims +if has('packages') + silent! packadd! matchit +endif diff --git a/vim/config/plugin.vim b/vim/config/plugin.vim deleted file mode 100644 index 6e79b255..00000000 --- a/vim/config/plugin.vim +++ /dev/null @@ -1,33 +0,0 @@ -" Try to run the version of matchit.vim included in the distribution, if there -" is one; extends % to match more than it does by default -silent! runtime macros/matchit.vim - -" Disable most core plugin stuff that I don't use -if has('eval') - - " 2html.vim is often useful, so keep that - " matchparen.vim I use constantly - - " I handle versioning plugins manually, and have never used .vba - let g:loaded_getscriptPlugin = 'skipped' - let g:loaded_vimballPlugin = 'skipped' - - " This is what grep, sed, Awk, and Perl are for - let g:loaded_logiPat = 'skipped' - - " ^Z, my dudes - let g:loaded_netrwPlugin = 'skipped' - - " Vim servers? What is this, Emacs? - let g:loaded_rrhelper = 'skipped' - - " System dictionaries plus custom per-machine spell files are fine - let g:loaded_spellfile_plugin = 'skipped' - - " If I want to read a file or a file archived within it I'll decompress or - " unarchive it myself; a text editor should not do this - let g:loaded_gzip = 'skipped' - let g:loaded_tarPlugin = 'skipped' - let g:loaded_zipPlugin = 'skipped' - -endif diff --git a/vim/plugin/macros.vim b/vim/plugin/macros.vim new file mode 100644 index 00000000..585eedc8 --- /dev/null +++ b/vim/plugin/macros.vim @@ -0,0 +1,5 @@ +" If we don't have packages (Vim < 8.0), try to load matchit.vim from the +" older macros location in the distributed runtime instead +if !has('packages') + silent! runtime macros/matchit.vim +endif -- cgit v1.2.3 From e48591105d20a4ebe7abfc89acb9f881476b62b3 Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Sun, 3 Jun 2018 00:27:53 +1200 Subject: Correct name of Makefile target --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 940ae9ef..c00f020f 100644 --- a/Makefile +++ b/Makefile @@ -39,7 +39,7 @@ install-urxvt \ install-vim \ install-vim-after \ - install-vim-after-ftdetect \ + install-vim-after-ftplugin \ install-vim-after-indent \ install-vim-after-plugin \ install-vim-after-syntax \ -- cgit v1.2.3 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. --- Makefile | 1 + lint/vim.sh | 1 + vim/filetype.vim | 11 ++++++++++ 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 ++++++++ 42 files changed, 222 insertions(+), 12 deletions(-) create mode 100644 vim/filetype.vim 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 diff --git a/Makefile b/Makefile index c00f020f..fd08950d 100644 --- a/Makefile +++ b/Makefile @@ -542,6 +542,7 @@ install-vim-config: install-vim-ftdetect: mkdir -p -- $(VIMDIR)/ftdetect + cp -p -- vim/filetype.vim $(VIMDIR) cp -p -- vim/ftdetect/*.vim $(VIMDIR)/ftdetect install-vim-ftplugin: diff --git a/lint/vim.sh b/lint/vim.sh index 64d87e8d..6e7561e0 100644 --- a/lint/vim.sh +++ b/lint/vim.sh @@ -13,6 +13,7 @@ set -- \ vim/bundle/uncap_ex \ vim/compiler \ vim/config \ + vim/filetype.vim \ vim/ftdetect \ vim/gvimrc \ vim/indent \ diff --git a/vim/filetype.vim b/vim/filetype.vim new file mode 100644 index 00000000..2abe7831 --- /dev/null +++ b/vim/filetype.vim @@ -0,0 +1,11 @@ +" Override filetypes.vim +if exists('g:did_load_filetypes') + finish +endif +let g:did_load_filetypes = 1 + +" Use only the rules in ftdetect +augroup filetypedetect + autocmd! + runtime! ftdetect/*.vim +augroup END 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 From e63edd766461f191959c27ec8ced26cec3d197b4 Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Sun, 3 Jun 2018 01:11:54 +1200 Subject: Refine shebangs in filetype detection --- vim/ftdetect/awk.vim | 2 +- vim/ftdetect/perl.vim | 2 +- vim/ftdetect/perl6.vim | 2 +- vim/ftdetect/python.vim | 2 +- vim/ftdetect/sh.vim | 6 +++--- vim/ftdetect/zsh.vim | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/vim/ftdetect/awk.vim b/vim/ftdetect/awk.vim index ce845c52..9965235e 100644 --- a/vim/ftdetect/awk.vim +++ b/vim/ftdetect/awk.vim @@ -4,6 +4,6 @@ autocmd BufNewFile,BufRead \ setfiletype awk autocmd BufNewFile,BufRead \ * - \ if getline(1) =~ '^#!.*awk$' + \ if getline(1) =~# '\m^#!.*\<[gm]\?awk\>' \ | setfiletype awk \ | endif diff --git a/vim/ftdetect/perl.vim b/vim/ftdetect/perl.vim index 3e8ec3b9..571e4f58 100644 --- a/vim/ftdetect/perl.vim +++ b/vim/ftdetect/perl.vim @@ -4,6 +4,6 @@ autocmd BufNewFile,BufRead \ setfiletype perl autocmd BufNewFile,BufRead \ * - \ if getline(1) =~ '^#!.*perl$' + \ if getline(1) =~# '\m^#!.*\' \ | setfiletype perl \ | endif diff --git a/vim/ftdetect/perl6.vim b/vim/ftdetect/perl6.vim index 2f7fce00..67e62c7c 100644 --- a/vim/ftdetect/perl6.vim +++ b/vim/ftdetect/perl6.vim @@ -4,6 +4,6 @@ autocmd BufNewFile,BufRead \ setfiletype perl6 autocmd BufNewFile,BufRead \ * - \ if getline(1) =~ '^#!.*perl6$' + \ if getline(1) =~# '\m^#!.\' \ | setfiletype perl6 \ | endif diff --git a/vim/ftdetect/python.vim b/vim/ftdetect/python.vim index 50055005..5c4a4a6f 100644 --- a/vim/ftdetect/python.vim +++ b/vim/ftdetect/python.vim @@ -4,6 +4,6 @@ autocmd BufNewFile,BufRead \ setfiletype python autocmd BufNewFile,BufRead \ * - \ if getline(1) =~ '^#!.*python[23]\?$' + \ if getline(1) =~# '\m^#!.*\' \ | setfiletype python \ | endif diff --git a/vim/ftdetect/sh.vim b/vim/ftdetect/sh.vim index 1169b744..1427bc03 100644 --- a/vim/ftdetect/sh.vim +++ b/vim/ftdetect/sh.vim @@ -42,13 +42,13 @@ autocmd BufNewFile,BufRead autocmd BufNewFile,BufRead \ * \ if !exists('b:is_bash') && !exists('b:is_kornshell') - \ | if getline(1) =~ '^#!.*bash$' + \ | if getline(1) =~# '\m^#!.*\' \ | let b:is_bash = 1 \ | setfiletype sh - \ | elseif getline(1) =~ '^#!.*ksh$' + \ | elseif getline(1) =~# '\m^#!.*\' \ | let b:is_ksh = 1 \ | setfiletype sh - \ | elseif getline(1) =~ '^#!.*sh$' + \ | elseif getline(1) =~# '\m^#!.*\' \ | let b:is_posix = 1 \ | setfiletype sh \ | endif diff --git a/vim/ftdetect/zsh.vim b/vim/ftdetect/zsh.vim index 1bcde981..08556361 100644 --- a/vim/ftdetect/zsh.vim +++ b/vim/ftdetect/zsh.vim @@ -4,6 +4,6 @@ autocmd BufNewFile,BufRead \ setfiletype zsh autocmd BufNewFile,BufRead \ * - \ if getline(1) =~ '^#!.*zsh$' + \ if getline(1) =~# '^#!.*\' \ | setfiletype zsh \ | endif -- cgit v1.2.3 From f7d0e7bed7f8ef8ca11c2564ccb1b6e40e5fcaaa Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Sun, 3 Jun 2018 01:17:10 +1200 Subject: Add shebang and opening tag detect for PHP --- vim/ftdetect/; | 12 ++++++++++++ vim/ftdetect/php.vim | 8 ++++++++ 2 files changed, 20 insertions(+) create mode 100644 vim/ftdetect/; diff --git a/vim/ftdetect/; b/vim/ftdetect/; new file mode 100644 index 00000000..f57ba0e6 --- /dev/null +++ b/vim/ftdetect/; @@ -0,0 +1,12 @@ +" PHP files +autocmd BufNewFile,BufRead + \ *.php + \ setfiletype php +autocmd BufNewFile,BufRead + \ * + \ if getline(1) =~# '\m^#!.\' + \ | setfiletype php + \ | endif + \ | if getline(1) =~? '\m^' + \ | setfiletype php + \ | endif diff --git a/vim/ftdetect/php.vim b/vim/ftdetect/php.vim index f28c7ab4..f57ba0e6 100644 --- a/vim/ftdetect/php.vim +++ b/vim/ftdetect/php.vim @@ -2,3 +2,11 @@ autocmd BufNewFile,BufRead \ *.php \ setfiletype php +autocmd BufNewFile,BufRead + \ * + \ if getline(1) =~# '\m^#!.\' + \ | setfiletype php + \ | endif + \ | if getline(1) =~? '\m^' + \ | setfiletype php + \ | endif -- cgit v1.2.3 From 733598201d53aefbcbf0e85de3eb86722c729099 Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Sun, 3 Jun 2018 12:24:43 +1200 Subject: Add missing vint targets --- lint/vim.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lint/vim.sh b/lint/vim.sh index 6e7561e0..af9b7877 100644 --- a/lint/vim.sh +++ b/lint/vim.sh @@ -7,6 +7,7 @@ set -- \ vim/bundle/insert_suspend_hlsearch \ vim/bundle/juvenile \ vim/bundle/mail_mutt \ + vim/bundle/put_blank_lines \ vim/bundle/sahara \ vim/bundle/strip_trailing_whitespace \ vim/bundle/toggle_option_flags \ @@ -17,6 +18,7 @@ set -- \ vim/ftdetect \ vim/gvimrc \ vim/indent \ + vim/plugin \ vim/vimrc vint -s -- "$@" || exit printf 'Vim configuration linted successfully.\n' -- cgit v1.2.3 From 56f01cfdf2cd71fec76f9a07b1cf61d38428d9e1 Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Sun, 3 Jun 2018 12:29:34 +1200 Subject: Revamp vint script with blacklist not whitelist --- lint/vim.sh | 40 ++++++++++++++++++---------------------- 1 file changed, 18 insertions(+), 22 deletions(-) diff --git a/lint/vim.sh b/lint/vim.sh index af9b7877..43eaf4c8 100644 --- a/lint/vim.sh +++ b/lint/vim.sh @@ -1,24 +1,20 @@ -set -- \ - vim/after \ - vim/bundle/auto_cache_dirs \ - vim/bundle/big_file_options \ - vim/bundle/copy_linebreak \ - vim/bundle/fixed_join \ - vim/bundle/insert_suspend_hlsearch \ - vim/bundle/juvenile \ - vim/bundle/mail_mutt \ - vim/bundle/put_blank_lines \ - vim/bundle/sahara \ - vim/bundle/strip_trailing_whitespace \ - vim/bundle/toggle_option_flags \ - vim/bundle/uncap_ex \ - vim/compiler \ - vim/config \ - vim/filetype.vim \ - vim/ftdetect \ - vim/gvimrc \ - vim/indent \ - vim/plugin \ - vim/vimrc +# Build an argument list of checks to make +set -- +for vim in vim/* vim/bundle/* ; do + [ -e "$vim" ] || continue + case $vim in + + # Skip third-party plugins + vim/bundle) ;; + vim/bundle/repeat) ;; + vim/bundle/surround) ;; + + # Check everything else + *) set -- "$@" "$vim" ;; + + esac +done + +# Run check vint -s -- "$@" || exit printf 'Vim configuration linted successfully.\n' -- cgit v1.2.3 From ed1dbf46513234844f50a2f98c1f699737ddf981 Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Sun, 3 Jun 2018 12:52:13 +1200 Subject: Bump VERSION --- VERSION | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/VERSION b/VERSION index 9f9e9114..dcd68db6 100644 --- a/VERSION +++ b/VERSION @@ -1,2 +1,2 @@ -tejr dotfiles v0.42.0 -Sat Jun 2 05:39:14 UTC 2018 +tejr dotfiles v0.43.0 +Sun Jun 3 00:51:04 UTC 2018 -- cgit v1.2.3