Hari, That au sounds like a good solution, although it is still mildly annoying that one can't get a tab variable from a specified tab! :)
Cheers, Max > -----Original Message----- > From: Hari Krishna Dara [mailto:[EMAIL PROTECTED] > Sent: Friday, August 04, 2006 11:06 PM > To: Max Dyckhoff > Cc: A.J.Mechelynck; vim@vim.org > Subject: RE: Checking if a variable exists in a given tab > > > On Thu, 3 Aug 2006 at 10:39am, Max Dyckhoff wrote: > > > If by "making the desired tab current" you mean using :tabn {count} then > > it isn't allowed. I imagine changing tabs within the tabline function > > would be A Bad Thing, and would cause recursion. > > > > I hadn't thought about using a global array of names, although it would > > be a pain to maintain when one closes a tab (and I have better things to > > program than that right now! :) > > > > Anyone else know if you can get a tab local variable somehow? > > > > Max > > The reason gettabwinvar() doesn't work is that the function returns > window variable not tab variable. The difference between getwinvar() and > this is that the former refers to the current tab, where as you can > specify a different tab using the later. > > There is no direct way of accessing this variable, I think this is > lacking, as I was looking for a way to associate buffers to the tabs in > which they are opened (for my selectbuf plugin to have a way to show > only the buffers edited in the current tab). I was thinking of a > workaround in which buffers will have a local variable whose value is > copied from the curret tab. You can probably do something similar using > a WinEnter autocommand, something like: > > au * WinEnter :let w:maxd_TabName = t:maxd_TabName > > This allows you to use gettabwinvar() function with "1" for winnr. > > -- > HTH, > Hari > > > > > > > > -----Original Message----- > > > From: A.J.Mechelynck [mailto:[EMAIL PROTECTED] > > > Sent: Thursday, August 03, 2006 10:32 AM > > > To: Max Dyckhoff > > > Cc: vim@vim.org > > > Subject: Re: Checking if a variable exists in a given tab > > > > > > Max Dyckhoff wrote: > > > > I'm sure this is an easy one, I just can't find the answer anywhere. > > > > > > > > I'm writing my own tabline function (based heavily on the one by > > Tony > > > > Mechelynck, thanks!) and I want to be able to name a tab manually. > > The > > > > best way I can think to do this is to have a tab local variable, > > such as > > > > t:maxd_TabName. Only problem is that within the script I can only > > check > > > > if that variable exists within the CURRENT tab. > > > > > > > > So how can I get a tab local variable from a numbered tab? I've > > found > > > > gettabwinvar(), but I just can't make it work ("echo gettabwinvar(i, > > 0, > > > > "maxd_TabName")" doesn't work). > > > > > > > > Thanks in advance! > > > > > > > > -- > > > > Max Dyckhoff > > > > AI Engineer > > > > Bungie Studios > > > > > > > > > > > > > > > > > > > > > > What about making the desired tab (temporarily) current while checking > > > if the variable exists? Maybe "manually naming" the current tab is > > good > > > enough (the user can change tabs manually too)? Or else, rather than a > > > separate variable in each tab, use a global array (a List, if you > > will), > > > with as many items as there are tabs? > > > > > > > > > Best regards, > > > Tony. > > > > > > __________________________________________________ > Do You Yahoo!? > Tired of spam? Yahoo! Mail has the best spam protection around > http://mail.yahoo.com