Nikolai Weibull wrote: > On 9/17/07, Tony Mechelynck <[EMAIL PROTECTED]> wrote: > >> Nikolai Weibull wrote: > >>> Ranting aside, the prefix of number above is now#. I mean, have I >>> gone to the trouble to declare what "namespace" the variable is in, >>> shouldn't that be enough? And >>> >>> let s:bug#number = 1 >>> >>> results in a >>> >>> E461: Illegal variable name: s:bug#number >>> >>> anyway, so there's no conflict in what you mean when you say bug#number. > >> s:number is not visible outside the script. It can never cause a sourcing of >> the script. >> >> g:bug#number (or bug#number outside a function) is defined in the script but >> visible everywhere. If you use it outside the script and it is undefined, >> does >> the script get loaded? Or is # just a lambda 'iskeyword' character when it >> applies to a variable? > > No, it doesn't cause the script to get loaded. This to allow you to > set "options" for an autoloaded script before it gets loaded. > > What is "lambda" supposed to mean here?
Hm? What is the exact English equivalent? random, average, any, John Q. Public, typical, ordinary, ... > >> l:number ( or number, used inside a function) is not visible outside that >> function. What about l:bug#number? I suppose it should be handled like >> s:bug#number (both valid or both throwing an error). > > There are no such variable scopes. That's exactly what I said in the > message you responded to. > >> There are other scopes: w:value, s:value and t:value are visible outside the >> script, but not everywhere. I suppose w:bug#number, b:bug#number and >> t:bug#number should also be valid. > > Why? None of the variables you talk about make much sense in having > available. The only really useful scope for a autloaded script's > variable, that is, a variable of the form script#variable, is global > (g:). Oh? Why not have a different buffer-local value for some variable pertaining to a given autoload script, the way there are buffer-local options? I have a b:match_words variable in some of my texts; that variable is different for different 'syntax'es. If matchit was an autoload script, it would be b:matchit#words or some such. > >> - name (with omitted scope) defaults to l:name if in a function, otherwise to >> g:name > > Yes, script#name can never be local to a function. My suggestion is > that script#name is clear enough in that it is a global variable. > > nikolai Regards, Tony. -- A sense of humor keen enough to show a man his own absurdities will keep him from the commission of all sins, or nearly all, save those that are worth committing. -- Samuel Butler --~--~---------~--~----~------------~-------~--~----~ You received this message from the "vim_dev" maillist. For more information, visit http://www.vim.org/maillist.php -~----------~----~----~----~------~----~------~--~---