カーソル下のワードに波線を引く

カーソルを波線を引きたいワードの上に持って行って、:UCurlとコマンド実行すると、
ワードに波線を引くスクリプト


こうなる。

let s:save_cpo = &cpo
set cpo&vim

" コマンド
command! -nargs=0 UCurl call s:UCurl()

" words
let s:map = {}

" ファンクション
function! s:UCurl()
    let l:cword = expand("<cword>")
    let s:map[l:cword] = 1
    call s:RefreshHighlight()
endfunction

" ハイライトを設定
function! s:RefreshHighlight()
    for l:k in keys(s:map)
        execute "syntax match ucurl_" . l:k . " '\\<" . l:k . "\\>'"
        execute "highlight ucurl_" . l:k . " term=undercurl cterm=undercurl gui=undercurl"
    endfor
endfunction

let &cpo = s:save_cpo
finish

Q. 線を引くコマンドはあるけど、消すコマンドは無いの?
A. 蛍光ペンと同じです。印刷物に線を引いた後に消そうと思っても消せないでしょう?


Q. たまに線を引けないワードがあるんだけど
A. 蛍光ペンと同じです。印刷物の質によっては書けないことがあるでしょう?


Q. 元のシンタックスハイライトが消えちゃうんだけど
A. 蛍光ペンと同じです。線を引くと、元の色が見えなくなるでしょう?


駄目じゃん(;_;)


前のシンタックスハイライトを生かしたまま、ワードの下に波線を引けたら良かったんだけど、良い案が浮かびません。
作る前からわかっていたのですが、軽い希望をもって、ちょっと試してしまいました。


没。