On 17:56 Sun 04 Nov , Tony Mechelynck wrote: > On 04/11/12 11:06, Marcin Szamotulski wrote: > > On 23:40 Sat 03 Nov , Chris Lott wrote: > >> Currently running: > >> > >> VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Sep 1 2012 18:08:47) > >> MacOS X (unix) version > >> Included patches: 1-646 > >> Compiled by Bjorn Winckler <[email protected]> > >> > >> I have these lines in my .vimrc > >> > >> if has("gui_macvim") > >> source ~/.vim/vimrc/mygfuncs.vim > >> endif > >> > >> In the mygfuncs file are some functions that set the `guitablabel` and > >> `guitabtooltip` based on two custom functions. The file is being > >> sourced (because the functions are defined), but the lines that set > >> those variables using those functions aren't working: > >> > >> set guitabtooltip=%{GuiTabToolTip()} > >> set guitablabel=%{GuiTabLabel()} > >> > >> At this point, the variables are set properly, because if I > >> > >> :set guitabtooltip > >> > >> Vim responds with > >> > >> guitabtooltip=%{GuiTabToolTip()} > >> > >> But it isn't actually being applied. > >> > >> **But** if I then `:so ~/.vimrc`, the tab label and tooltips *are* applied. > >> > >> What is going on here? > >> > >> c > >> -- > >> Chris Lott <[email protected]> > >> > >> -- > >> You received this message from the "vim_use" maillist. > >> Do not top-post! Type your reply below the text you are replying to. > >> For more information, visit http://www.vim.org/maillist.php > > > > The way to set an option from a value returned by a function is: > > > > let &guitabltooltip=GuiTabToolTip() > > > > if you want to set local value (like setlocal does) you could use: > > > > let &l:guitabtooltip=GuiTabToolTip() > > > > You can read about it in ":help :let-&". You can also use the short > > name of an option. &guitabtooltip is just a VimL variable. There is > > also &g:guitabtooltip which will work like using the :setglobal command. > > > > Best, > > Marcin > > > No, :set guitablabel=%{GuiTabLabel()} is actually the example given > under :help 'guitablabel' so that the function is calculated every time > Vim tries to display the GUI tabs. Using :let &guitablabel = > GuiTabLabel() would calculate the function just once, when setting the > option. > > For GUI tabs to be displayed, you need the e flag in 'guioptions'. Also, > the value of 'showtabline' is relevant: > 0 Never > 1 (default) Only if there are two or more tab pages > 2 Always > > If 'showtabline' is nonzero and 'guioptions' does not contain e you'll > get text-style tabs as defined by the 'tabline' option, even in GUI mode. > > If these options are set correctly and you still don't see the tabs, > then another possibility is that Vim would set 'guitablabel' and > 'guitabtooltip' to some default (or empty) value at GUI startup. To > counteract this, you can set them at the GUIEnter autocommand event: > > if has('gui') && has('autocmd') && has('windows') > au GUIEnter * set gtl=%{GuiTabLabel()} gtt=%{GuiTabTooltip()} > endif > > > Best regards, > Tony. > -- > Mother told me to be good, but she's been wrong before.
Tony is right! ":help setting-guitablabel" is the exact reference. Best, Marcin -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php
