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