Hi A.J.Mechelynck, you wrote:
>
> 3. replace the arguments of guibg= and guifg= by their #RRGGBB hex
> equivalents from the rxvt color palette. What these equivalents are, I
> don't know; but you can set any 32-bit color that way. If you want it to
> be usable (without dithering) on a 256-color terminal, you should use red,
> green and blue components, each of which is a multiple of 0x33 (i.e., 00
> 33 66 99 CC or FF).
>
Also, when choosing a color, it might make sense to take a look at file
$VIMRUNTIME/rgb.txt which contains standard color names supported by VIM and
which can be used in your colorschemes.
Some time ago I wrote a function which makes viewing the rgb.txt file more
useful:
---%<------%<------%<------%<------%<------%<------%<------%<------%<------%<---
function! Byte2Hex(byte)
let hex_chars = '0123456789ABCDEF'
return hex_chars[a:byte / 16] . hex_chars[a:byte % 16]
endfunction
function! RGBHighlight()
let line_idx = 1
let num_lines = line("$")
while line_idx <= num_lines
let line = getline(line_idx)
let line_idx = line_idx + 1
if line =~ '^\s*\d\+\s\+\d\+\s\+\d\+\s\+.*$'
let r = substitute(line,
'^\s*\(\d\+\)\s\+\(\d\+\)\s\+\(\d\+\)\s\+.*$', '\1', "")
let g = substitute(line,
'^\s*\(\d\+\)\s\+\(\d\+\)\s\+\(\d\+\)\s\+.*$', '\2', "")
let b = substitute(line,
'^\s*\(\d\+\)\s\+\(\d\+\)\s\+\(\d\+\)\s\+.*$', '\3', "")
let hlcolor = Byte2Hex(r) . Byte2Hex(g) . Byte2Hex(b)
let hlname = 'RGB' . hlcolor
if !hlexists(hlname)
exec "highlight " . hlname . " guifg=#" . hlcolor
exec "syntax match " . hlname . ' /^\s*' . r. '\s\+' . g .
'\s\+' . b . '\s\+.*$/'
endif
endif
endwhile
endfunction
call RGBHighlight()
---%<------%<------%<------%<------%<------%<------%<------%<------%<------%<---
You can put it into a file, say, ~/rgb.vim and do
:e $VIMRUNTIME/rgb.txt
:source ~/rgb.vim
It will work absolutely correct only in Vim 7 since Vim 6 has support for very
limited amount of syntax highlighting groups.
P.S. Tony, in the text above by "you" I mean the original poster, not you. :-)
--
Alexei Alexandrov