On 12/01/09 13:44, Yue Wu wrote:
> As title, I want to change the setting of highlight for cursor, then
> restore it back.
>
The following is untested. It requires Vim version 7.
function SaveCursorColor()
redir => highlight
silent hi Cursor
redir END
if highlight =~ 'links to '
let s:hl-link = matchstr(highlight, 'links to \zs\S*')
elseif highlight =~ '\<cleared\>'
let s:hl-link = 'NONE'
else
let s:hl-link = ''
for substr in ['term', 'cterm', 'ctermfg', 'ctermbg',
\ 'gui', 'guifg', 'guibg', 'guisp']
if highlight =~ substr . '='
let s:hl-{substr} = matchstr(highlight,
\ substr . '=\S*')
else
let s:hl-{substr} = ''
endif
endfor
endif
endfunction
function RestoreCursorColor()
if !exists('s:hl-link')
echoerr 'Cursor not saved, cannot restore'
return
endif
hi clear Cursor
if s:hl-link == ''
exe 'hi Cursor' s:hl-term s:hl-cterm s:hl-ctermfg
\ s:hl-ctermbg s:hl-gui s:hl-guifg s:hl-guibg
\ s:hl-guisp
elseif hl-link != 'NONE'
exe 'hi link Cursor' s:hl-link
endif
endfunction
Best regards,
Tony.
--
"Consequences, Schmonsequences, as long as I'm rich."
-- "Ali Baba Bunny" [1957, Chuck Jones]
--~--~---------~--~----~------------~-------~--~----~
You received this message from the "vim_use" maillist.
For more information, visit http://www.vim.org/maillist.php
-~----------~----~----~----~------~----~------~--~---