On Mon 17-Jul-06 9:10am -0600, Charles E Campbell Jr wrote:

> Bill McCarthy wrote:
>
> (concerning updating to netrw v102i)
>
>>After some struggling to get the .vba file, it installed
>>nicely in my vimfiles/ directory.  It didn't work at all
>>until I removed the v98 distribution files:
>>
>>    [c:\vim\vim70]zip -rm netrw98 . -i *netrw*

> Yes, that's why I said to be sure to remove all vestiges
> of older netrw.  Netrw has the common to plugins feature
> to prevent itself from being loaded more than once.

Here's my rtp setting from _vimrc:

    set rtp=$vim\\vimfiles,$vimruntime,$vim\\vimfiles\\after

That should avoid the problem.  It doesn't.  The reason is
that your netrwPlugin.vim in both the distribution (v98) and
the latest on your site contains this line near the top in
your "Load Once" section:

    if exists("g:loaded_netrw")

At startup, both versions of nnetrwPlugin are sourced and
things get confused.

A simple solution, which appears to work fine, is to change
that line (in both files) to:

    if exists("g:loaded_netrwPlugin")

and adding a line after the 'if v:version < 700' block:

    let g:loaded_netrwPlugin = "netrw"

Now the update in vimfiles\ can safely coexist with the
release.

>>I noticed that some files are always missing from the
>>list.  For example, .exe .jpg .gif
>>
>>Why is this and how do we override?

> Netrw doesn't normally suppress these; I don't know why
> these files are missing from your listings.  In fact,
> netrw provides a mapping for "x" so that the cursor
> selected file with one of those extensions can be
> visualized.

After a little trial and error, I found that eliminating one
line from my _vimrc "solves" the problem.  That line is:

    set wildignore=*.exe,*.dll,*.jpg,*.gif,*.o,*.obj

Merely because I don't want file completion on these files
doesn't imply that I don't want them showing up in a
directory listing.  Any way around this?

            ====================================

I see you have made a few changes in the script.  One
change, to determine whether cmd.exe or 4nt.exe is the
shell, contains this line:

    if &shell =~ "\<\%(cmd.exe\|4nt.exe\)$"

That would work if you used single quotes (a literal instead
of a string).  But even that would not work if the user had
'noic' (the default) and 'shell' was in uppercase.  Also,
the '.' wildcard is not helpful.  This tests fine:

    if &shell =~ '\v<%(cmd|4nt)\.exe$\c'

-- 
Best regards,
Bill

Reply via email to