08/07/02 23:42:22 m6QdaJOX0
>>744
1.色名全部定義する方法
2.入力されたものを追加していく方法
2-1. autocmd CursorMovedI 使って入力を常にチェックしていく方法(コスト高い)
2-2. 色名入力したら自分でコマンドかマップで追加していく方法
2-2.の場合
let s:colors={}
function! SetColor()
let line = getline(".")
let rh = {}
let pattern = '#[0-9a-fA-F]\{6}\>'
call substitute(line,pattern,'\=empty(extend(rh,{submatch(0):1}))','g')
let rs = keys(rh)
for c in rs
if !has_key(s:colors,c)
let hlname = c[1:]
exec printf('syntax match HL_%s /%s\>/ containedin=ALL',hlname,c)
exec printf('highlight HL_%s guibg=%s',hlname,c)
endif
endfor
return ''
endfunction
nnoremap \c :call SetColor()<CR>
inoremap <C-\><C-C> <C-R>=SetColor()<CR>