Friday, January 23, 2015

Re: How to temporarily change Cursor color and change back

Hi Paul!

On Fr, 23 Jan 2015, Paul wrote:

> Christian Brabandt:
> >On Do, 04 Mär 2010, pansz wrote:
> >> Script can use highlight command to change color, however, if a
> >> script meant to change one color temporarily, it has no knowledge
> >> about the previous setting.
> >>
> >> 1. the :hi Cursor is defined by my color scheme. 2. now in some
> >> case a script change the cursor color to indicate a special mode.
> >> 3. when the mode ends, the script want to change the Cursor back
> >> but it has no knowledge about what is the highlight of Cursor
> >> defined by user's color scheme.
> > […]
> >> Any work around? Thanks for all.
> >>
> >
> > Try the attached script. I was written quick and dirty fr a similar
> > issue on this list. It already queries the font attribute, though
> > this only works with a patched vim, currently.
>
> Christian Brabandt kindly donated a function "Hi" to save the
> highlighting for a group (included at the very bottom).
>
> :hi CursorLine
> CursorLine xxx term=underline cterm=underline guifg=white guibg=#002000
>
> I have groups for which not all keys are defined. They are saved with
> a value of -1, which seems to be interpretted as an error:
>
> :echo Hi("CursorLine")
> hi CursorLine term=underline ctermbg=-1 ctermfg=-1 guibg=#002000 cterm=underline guifg=white
>
> :exe Hi("CursorLine")
> E421: Color name or number not recognized: ctermbg=-1 ctermfg=-1 guibg=#002000 cterm=underline guifg=white
>
> I've delved into vim code in years past, and I have an idea of how
> long it will take. Unfortunately, I won't be doing that any time
> soon. Is there a quick way to get around the problem? My vim version
> info is:
> let out='hi ' . a:1
> for item in items(s:attr)
> "if item[1] >=0
> let out .= printf(" %s=%s", item[0], item[1])
> "endif
> endfor

Try uncommenting the above if statement.


Best,
Christian
--
Ich glaube, alle Empfängnisse sind unbefleckt.
-- George Bernard Shaw

--
--
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 vim_use+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

No comments: