On 2009-09-23, Jürgen Krämer wrote:
> Hi,
> 
> Gary Johnson wrote:
> > 
> > On 2009-09-23, Jürgen Krämer wrote:
> > 
> >> Steven Woody wrote:
> > 
> >>   :let &path = &path . ',' . substitute($VARIABLE, ' ', '\\ ', 'g')
> >>
> >>> This works!! Thanks.  But I've not quite understand :
> >>> 1. why use let instead of 'set'? what's the difference?
> >>
> >> Because the spaces in $VARIABLE need to be escaped. This is not
> >> automatically done with
> >>
> >>   set path+=$VARIABLE
> > 
> > Not only that, but set won't accept an expression on the right.
> 
> as a first reaction I wanted to give this explanation, too, but then
> I checked it and $VARIABLE was interpolated into the path option.
> (The reason that made me stop writing this was that
> 
>   :e $HOME/.vimrc
> 
> works. If I am not mistaken environment variables are expanded in
> ex-commands, but Vim's variables (pre-defined or user-defined) are
> not. Thus
> 
>   :let variable = $VARIABLE
>   :set path+=variable
> 
> does not work.)

You're right:

    set path+=$VARIABLE

does work (assuming the contents of $VARIABLE are properly escaped).
I should have tested that before instead of relying on what I
thought I knew about vim's evaluation.  Thanks for the correction.

Regards,
Gary



--~--~---------~--~----~------------~-------~--~----~
You received this message from the "vim_use" maillist.
For more information, visit http://www.vim.org/maillist.php
-~----------~----~----~----~------~----~------~--~---

Reply via email to