Tony Mechelynck schrieb:
> On 12/01/09 19:16, Andy Wokula wrote:
>> Matt Wozniski schrieb:
>>> On 1/12/09, Yue Wu wrote:
>>>> It's too complicated, if I want to save/restore highlight for others,
>>>> it would need a big change. No other simple and generic way?
>>> Well, using synIDattr() you should be able to get all the information
>> which needs a {synID}, provided by
>> :h hlID()
>>
>> maybe (GUI only):
>>
>> " Usage:
>> " :let sav_hlCursor = SaveColor("Cursor")
>> " : hi Cursor ...
>> " : ...
>> " :call RestoreColor(sav_hlCursor)
>>
>> func! SaveColor(hlgroup)
>> let savhl = {"hlgroup": a:hlgroup}
>> let curid = hlID(a:hlgroup)
>> let curtrans = synIDtrans(curid)
>> if curid != curtrans
>> let savhl.link = curtrans
>> else
>> let savhl.fg = synIDattr(curid, "fg")
>> let savhl.bg = synIDattr(curid, "bg")
>> " ...
>> endif
>> return savhl
>> endfunc
>>
>> func! RestoreColor(hldict)
>> let savhl = a:hldict
>> exe "hi clear" savhl.hlgroup
>> if has_key(savhl, "link")
>> exe "hi link" savhl.hlgroup synIDattr(savhl.link, "name")
>> else
>> " GUI only:
>> exe "hi" savhl.hlgroup "guifg=".savhl.fg "guibg=".savhl.bg
>> endif
>> endfunc
>>
>
> P.S. Not only will it only work in the GUI, it will not restore bold,
> italic, underline, undercurl and guisp= (Mine does, and I could easily
> add the hlgroup argument).
>
> Best regards,
> Tony.
If still unclear:
" ...
in my code means: please look at Tony's version to see what's missing
:-)
--
Andy
--~--~---------~--~----~------------~-------~--~----~
You received this message from the "vim_use" maillist.
For more information, visit http://www.vim.org/maillist.php
-~----------~----~----~----~------~----~------~--~---