vim で markdown の ```perl ```の所を TOhtml でブラウザに出すさん

function! s:CurrentTOhtml()
        let type = context_filetype#get_filetype()
        let basetype = precious#base_filetype()
        let [start, end] = context_filetype#get_range(basetype)
        let lines = getline(start[0], end[0])
        new
        call append(0, lines)
        execute 'setl filetype=' . type
        let tmpbufnr = bufnr("%")
        TOhtml
        %s/<a href=".\{-}">\(.\{-}\)<\/a>/\=submatch(1)/
        let tempname = tempname()
        " delete edit buffer
        execute 'bd! ' . tmpbufnr
        execute 'write ' . tempname
        " delete tohtml buffer
        bd!
        call openbrowser#open(tempname)
        sleep 2
        " delete temporary file
        call delete(tempname)
endfunction
command! CurrentTOhtml :call s:CurrentTOhtml()

マクロでやってたけど、間違えて消えると不便だけど、もうちょっと綺麗にならないかな........ あと TOhtml で url に勝手に a tag がつくのどうにかならないかなぁ。