aboutsummaryrefslogtreecommitdiff
path: root/plugin
diff options
context:
space:
mode:
authorTom Ryder <tom@sanctum.geek.nz>2018-07-14 20:37:41 +1200
committerTom Ryder <tom@sanctum.geek.nz>2018-07-14 20:38:14 +1200
commit34f746015a76fda53b70dda91f81edf41f75d472 (patch)
treefaec7e7683406436a24e591d1357c19ee3d5b742 /plugin
downloadvim-vimrc-reload-filetype-34f746015a76fda53b70dda91f81edf41f75d472.tar.gz
vim-vimrc-reload-filetype-34f746015a76fda53b70dda91f81edf41f75d472.zip
First versionv0.1.0
Diffstat (limited to 'plugin')
-rw-r--r--plugin/vimrc_reload_filetype.vim31
1 files changed, 31 insertions, 0 deletions
diff --git a/plugin/vimrc_reload_filetype.vim b/plugin/vimrc_reload_filetype.vim
new file mode 100644
index 0000000..c2587f9
--- /dev/null
+++ b/plugin/vimrc_reload_filetype.vim
@@ -0,0 +1,31 @@
+"
+" vimrc_reload_filetype.vim: Add hook to reload active buffer's filetype when
+" vimrc reloaded, so that we don't end up indenting four spaces in an open
+" VimL file, etc. Requires Vim 7.1 or 7.0 with patch 187 for SourceCmd.
+"
+" Author: Tom Ryder <tom@sanctum.geek.nz>
+" License: Same as Vim itself
+"
+if exists('g:loaded_vimrc_reload_filetype') || &compatible
+ finish
+endif
+if !has('autocmd') || !exists('##SourceCmd')
+ finish
+endif
+let g:loaded_vimrc_reload_filetype = 1
+
+" Wrapper function reloads .vimrc and filetypes
+function! s:Reload() abort
+ source <afile>
+ if exists('#filetypedetect#BufRead')
+ doautocmd filetypedetect BufRead
+ endif
+ redraw
+ echomsg 'Reloaded vimrc: '.expand('<afile>')
+endfunction
+
+" This SourceCmd intercepts :source for .vimrc
+augroup vimrc_reload_filetype
+ autocmd!
+ autocmd SourceCmd $MYVIMRC call s:Reload()
+augroup END