how to use v:termrbgresp & friends

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

how to use v:termrbgresp & friends

Danek Duvall-2
I've been trying to use v:termrbgresp to determine what color scheme to
use, but I can't figure out how to use it successfully.

I tried simply testing against it in my .vimrc, but that doesn't work,
probably because it hasn't been set yet.  Sort of like v:termresponse,
which requires that you use the TermResponse event.

But when TermResponse fires, v:termrbgresp isn't set yet, either, and I
can't find an event that seems like it should be the right thing to use.
By the time I can type in ":echo v:termrbgresp", though, it's set.  I just
need a mechanism to tell me when it's okay to use its value.

Should there be separate events for each of the terminal response codes?
Maybe one that fires when all the ones that will have responses have them?
Or a generic event that fires when a variable is set?

Or am I missing something?  I looked for examples, but couldn't find any.

Thanks,
Danek

--
--
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

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: how to use v:termrbgresp & friends

Christian Brabandt

On Mo, 30 Apr 2018, Danek Duvall wrote:

> I've been trying to use v:termrbgresp to determine what color scheme to
> use, but I can't figure out how to use it successfully.
>
> I tried simply testing against it in my .vimrc, but that doesn't work,
> probably because it hasn't been set yet.  Sort of like v:termresponse,
> which requires that you use the TermResponse event.
>
> But when TermResponse fires, v:termrbgresp isn't set yet, either, and I
> can't find an event that seems like it should be the right thing to use.
> By the time I can type in ":echo v:termrbgresp", though, it's set.  I just
> need a mechanism to tell me when it's okay to use its value.
>
> Should there be separate events for each of the terminal response codes?
> Maybe one that fires when all the ones that will have responses have them?
> Or a generic event that fires when a variable is set?
>
> Or am I missing something?  I looked for examples, but couldn't find any.

If nothing else, you can always defer to the VimEnter or possibly the
GuiEnter autocommand

Best,
Christian
--
Wie man sein Kind nicht nennen sollte:
  Will Nich

--
--
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

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: how to use v:termrbgresp & friends

Danek Duvall-2
On Tue, May 01, 2018 at 06:43:30PM +0200, Christian Brabandt wrote:

> On Mo, 30 Apr 2018, Danek Duvall wrote:
>
> > I've been trying to use v:termrbgresp to determine what color scheme to
> > use, but I can't figure out how to use it successfully.
> >
> > I tried simply testing against it in my .vimrc, but that doesn't work,
> > probably because it hasn't been set yet.  Sort of like v:termresponse,
> > which requires that you use the TermResponse event.
> >
> > But when TermResponse fires, v:termrbgresp isn't set yet, either, and I
> > can't find an event that seems like it should be the right thing to use.
> > By the time I can type in ":echo v:termrbgresp", though, it's set.  I just
> > need a mechanism to tell me when it's okay to use its value.
> >
> > Should there be separate events for each of the terminal response codes?
> > Maybe one that fires when all the ones that will have responses have them?
> > Or a generic event that fires when a variable is set?
> >
> > Or am I missing something?  I looked for examples, but couldn't find any.
>
> If nothing else, you can always defer to the VimEnter or possibly the
> GuiEnter autocommand

I'd tried VimEnter, but that didn't work, either.  That fires even before
TermResponse.

Thanks,
Danek

--
--
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

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: how to use v:termrbgresp & friends

Christian Brabandt

On Di, 01 Mai 2018, Danek Duvall wrote:

> On Tue, May 01, 2018 at 06:43:30PM +0200, Christian Brabandt wrote:
>
> > On Mo, 30 Apr 2018, Danek Duvall wrote:
> >
> > > I've been trying to use v:termrbgresp to determine what color scheme to
> > > use, but I can't figure out how to use it successfully.
> > >
> > > I tried simply testing against it in my .vimrc, but that doesn't work,
> > > probably because it hasn't been set yet.  Sort of like v:termresponse,
> > > which requires that you use the TermResponse event.
> > >
> > > But when TermResponse fires, v:termrbgresp isn't set yet, either, and I
> > > can't find an event that seems like it should be the right thing to use.
> > > By the time I can type in ":echo v:termrbgresp", though, it's set.  I just
> > > need a mechanism to tell me when it's okay to use its value.
> > >
> > > Should there be separate events for each of the terminal response codes?
> > > Maybe one that fires when all the ones that will have responses have them?
> > > Or a generic event that fires when a variable is set?
> > >
> > > Or am I missing something?  I looked for examples, but couldn't find any.
> >
> > If nothing else, you can always defer to the VimEnter or possibly the
> > GuiEnter autocommand
>
> I'd tried VimEnter, but that didn't work, either.  That fires even before
> TermResponse.

Yeah, it looks like even VimEnter fires earlier. I checked in the
debugger, v:termrbgresp is only set once the main_loop has been entered.
I think I remember a patch that moved the logic later in the vim
initialization phase, so it might be on purpose.

And TermResponse is only fired for when the v:termresponse variable is
set, not for the v:termrbgresp or v:termrfgresp variables. Not sure, if
it would make sense to fire TermResponse autocommand also for the other
v:term variables.

So the only workaround would be to start a timer that checks your the
values after startup.

Best,
Christian
--
Sommersprossen sind noch kein Gesichtspunkt und Kopfjucken noch
keine Gehirntätigkeit.

--
--
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

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: how to use v:termrbgresp & friends

Bram Moolenaar

> On Di, 01 Mai 2018, Danek Duvall wrote:
>
> > On Tue, May 01, 2018 at 06:43:30PM +0200, Christian Brabandt wrote:
> >
> > > On Mo, 30 Apr 2018, Danek Duvall wrote:
> > >
> > > > I've been trying to use v:termrbgresp to determine what color scheme to
> > > > use, but I can't figure out how to use it successfully.
> > > >
> > > > I tried simply testing against it in my .vimrc, but that doesn't work,
> > > > probably because it hasn't been set yet.  Sort of like v:termresponse,
> > > > which requires that you use the TermResponse event.
> > > >
> > > > But when TermResponse fires, v:termrbgresp isn't set yet, either, and I
> > > > can't find an event that seems like it should be the right thing to use.
> > > > By the time I can type in ":echo v:termrbgresp", though, it's set.  I just
> > > > need a mechanism to tell me when it's okay to use its value.
> > > >
> > > > Should there be separate events for each of the terminal response codes?
> > > > Maybe one that fires when all the ones that will have responses have them?
> > > > Or a generic event that fires when a variable is set?
> > > >
> > > > Or am I missing something?  I looked for examples, but couldn't find any.
> > >
> > > If nothing else, you can always defer to the VimEnter or possibly the
> > > GuiEnter autocommand
> >
> > I'd tried VimEnter, but that didn't work, either.  That fires even before
> > TermResponse.
>
> Yeah, it looks like even VimEnter fires earlier. I checked in the
> debugger, v:termrbgresp is only set once the main_loop has been entered.
> I think I remember a patch that moved the logic later in the vim
> initialization phase, so it might be on purpose.
>
> And TermResponse is only fired for when the v:termresponse variable is
> set, not for the v:termrbgresp or v:termrfgresp variables. Not sure, if
> it would make sense to fire TermResponse autocommand also for the other
> v:term variables.
>
> So the only workaround would be to start a timer that checks your the
> values after startup.

There are several terminal responses now, besides bg and fg, there is
the blink and the style.  Since the buffer name doesn't matter, it's
probably easier to add one generic autocommand event and set the name to
"fg", "bg", "blink", etc.  Then we can add more later.

--
If your life is a hard drive,
Christ can be your backup.

 /// Bram Moolenaar -- [hidden email] -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

--
--
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

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.