Преглед изворни кода

Remove FileType autocmd after loaded

Junegunn Choi пре 11 година
родитељ
комит
db3f5ad5c3
1 измењених фајлова са 5 додато и 8 уклоњено
  1. 5 8
      plug.vim

+ 5 - 8
plug.vim

@@ -58,7 +58,6 @@ set cpo&vim
 let s:plug_source = 'https://raw.github.com/junegunn/vim-plug/master/plug.vim'
 let s:plug_file = 'Plugfile'
 let s:plug_buf = -1
-let s:loaded = {}
 let s:is_win = has('win32') || has('win64')
 let s:me = expand('<sfile>:p')
 
@@ -168,9 +167,10 @@ function! plug#end()
       for vim in split(globpath(s:rtp(plug), 'ftdetect/**/*.vim'), '\n')
         execute 'source '.vim
       endfor
+      let pat = join(s:to_a(plug.for), ',')
       augroup PlugLOD
-        execute printf('autocmd FileType %s call <SID>lod_ft(%s, %s)',
-              \ join(s:to_a(plug.for), ','), string(name), string(plug))
+        execute printf('autocmd FileType %s call <SID>lod_ft(%s, %s, %s)',
+              \ pat, string(pat), string(name), string(plug))
       augroup END
     endif
   endfor
@@ -207,12 +207,9 @@ function! s:lod(plug, types)
   endfor
 endfunction
 
-function! s:lod_ft(name, plug)
-  if has_key(s:loaded, a:name)
-    return
-  endif
+function! s:lod_ft(pat, name, plug)
   call s:lod(a:plug, ['plugin', 'after'])
-  let s:loaded[a:name] = 1
+  execute 'autocmd! PlugLOD FileType ' . a:pat
 endfunction
 
 function! s:lod_cmd(cmd, bang, l1, l2, args, plug)