X-Git-Url: http://git.iain.cx/?a=blobdiff_plain;f=.vim%2Fplugin%2Fcharacterize.vim;h=9b24a21f4deca863552875119f452dd0c7ab0b6e;hb=28e8850aa8a696af1c23aa335fc84c08dd01a1ec;hp=207ca7e524b98f21eeee1b64ba96efe070b13f8a;hpb=35806d7bf72724acdea0c3d7269f5ffd38eb0479;p=profile.git diff --git a/.vim/plugin/characterize.vim b/.vim/plugin/characterize.vim index 207ca7e..9b24a21 100644 --- a/.vim/plugin/characterize.vim +++ b/.vim/plugin/characterize.vim @@ -11,27 +11,36 @@ function! s:info(char) if empty(a:char) return 'NUL' endif - let nr = a:char ==# "\n" ? 0 : char2nr(a:char) - let char = nr < 32 ? '^'.nr2char(64 + nr) : a:char - let out = '<' . char . '> ' . nr - if nr < 256 - let out .= printf(', \%03o', nr) - endif - let out .= printf(', U+%04X', nr) - let out .= ' '.characterize#description(nr, '') - for digraph in characterize#digraphs(nr) - let out .= ", \".digraph - endfor - for emoji in characterize#emojis(nr) - let out .= ', '.emoji - endfor - let entity = characterize#html_entity(nr) - if !empty(entity) - let out .= ', '.entity - endif - return out + let charseq = a:char + let outs = [] + while !empty(charseq) + let nr = charseq ==# "\n" ? 0 : char2nr(charseq) + let char = nr < 32 ? '^'.nr2char(64 + nr) : nr2char(nr) + let charseq = strpart(charseq, nr ? len(nr2char(nr)) : 1) + let out = '<' . (empty(outs) ? '' : ' ') . char . '> ' . nr + if nr < 256 + let out .= printf(', \%03o', nr) + endif + let out .= printf(', U+%04X', nr) + let out .= ' '.characterize#description(nr, '') + for digraph in characterize#digraphs(nr) + let out .= ", \".digraph + endfor + for emoji in characterize#emojis(nr) + let out .= ', '.emoji + endfor + let entity = characterize#html_entity(nr) + if !empty(entity) + let out .= ', '.entity + endif + call add(outs, out) + endwhile + return join(outs, ' ') endfunction -nmap