diff options
Diffstat (limited to 'runtime/ftplugin.vim')
-rw-r--r-- | runtime/ftplugin.vim | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/runtime/ftplugin.vim b/runtime/ftplugin.vim index 922656605..64294ca5b 100644 --- a/runtime/ftplugin.vim +++ b/runtime/ftplugin.vim @@ -1,7 +1,7 @@ " Vim support file to switch on loading plugins for file types " " Maintainer: Bram Moolenaar <Bram@vim.org> -" Last change: 2005 Mar 25 +" Last change: 2006 Mar 18 if exists("did_load_ftplugin") finish @@ -10,18 +10,26 @@ let did_load_ftplugin = 1 augroup filetypeplugin au FileType * call s:LoadFTPlugin() + func! s:LoadFTPlugin() if exists("b:undo_ftplugin") exe b:undo_ftplugin unlet! b:undo_ftplugin b:did_ftplugin endif - if expand("<amatch>") != "" + + let s = expand("<amatch>") + if s != "" if &cpo =~# "S" && exists("b:did_ftplugin") " In compatible mode options are reset to the global values, need to " set the local values also when a plugin was already used. unlet b:did_ftplugin endif - runtime! ftplugin/<amatch>.vim ftplugin/<amatch>_*.vim ftplugin/<amatch>/*.vim + + " When there is a dot it is used to separate filetype names. Thus for + " "aaa.bbb" load "aaa" and then "bbb". + for name in split(s, '\.') + exe 'runtime! ftplugin/' . name . '.vim ftplugin/' . name . '_*.vim ftplugin/' . name . '/*.vim' + endfor endif endfunc augroup END |