aboutsummaryrefslogtreecommitdiff
path: root/vim/plugin/user_ftplugin.vim
diff options
context:
space:
mode:
Diffstat (limited to 'vim/plugin/user_ftplugin.vim')
-rw-r--r--vim/plugin/user_ftplugin.vim24
1 files changed, 24 insertions, 0 deletions
diff --git a/vim/plugin/user_ftplugin.vim b/vim/plugin/user_ftplugin.vim
new file mode 100644
index 00000000..d9739bda
--- /dev/null
+++ b/vim/plugin/user_ftplugin.vim
@@ -0,0 +1,24 @@
+"
+" user_ftplugin.vim: When switching filetypes, look for a b:undo_user_ftplugin
+" variable and use it in much the same way the core's ftplugin.vim does
+" b:undo_ftplugin in Vim >= 7.0. This allows you to undo your own ftplugin
+" files the same way you can the core ones.
+"
+if exists('g:loaded_user_ftplugin')
+ \ || !has('autocmd')
+ \ || &compatible
+ finish
+endif
+let g:loaded_user_ftplugin = 1
+
+function! s:LoadUserFtplugin()
+ if exists('b:undo_user_ftplugin')
+ execute b:undo_user_ftplugin
+ unlet b:undo_user_ftplugin
+ endif
+endfunction
+
+augroup user_ftplugin
+ autocmd!
+ autocmd FileType * call s:LoadUserFtplugin()
+augroup END