Hello,

* On Fri, Oct 20, 2006 at 02:46:24AM +0200, Yakov Lerner <[EMAIL PROTECTED]> 
wrote:
> Almost every plugin begins with this check:
>    if exists("g:plugin_name") | finish | endif
>    let g:plugin_name = 1
> I understand this tries to save time if vim tries to load plugins 2nd time.
> But aren't plugins loaded only at vim startup ? Does vim *ever*
> ever try to load plugins 2nd time ? In which situation can vim load
> plugin 2nd time (except for some manual command) ?

I usually use the following check:
    if exists('g:loaded_plugin_name') 
       \ || !exists('g:force_reload_plugin_name')
       finish
    endif
    let g:loaded_plugin_name = 1

I use this to avoid reload to many times a plugin. There is one scenario
that could make it happen: when the plugin is required by another plugin
which checks the plugin is loaded before with something like:
    if exists(':SomeExpectedCommand')
        runtime plugin/plugin_name.vim
        if !exists(':SomeExpectedCommand')
            echoerr "foobar.vim requires plugin_name to be installed"
            finish
        endif
    endif
    ...
    :SomeExpectedCommand foobar

However, with vim7 I do not see the point of such complex dependency
enforcements anymore. autoloaded plugins seem to be a much better and
simpler solution.


Regarding the g:force_reload_plugin_name, it eases plugin maintenance.

-- 
Luc Hermitte
http://hermitte.free.fr/vim/

Reply via email to