Added jdaddy plugin.
[profile.git] / .vim / plugin / characterize.vim
index 207ca7e..9b24a21 100644 (file)
@@ -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, '<unknown>')
-  for digraph in characterize#digraphs(nr)
-    let out .= ", \<C-K>".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, '<unknown>')
+    for digraph in characterize#digraphs(nr)
+      let out .= ", \<C-K>".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 <silent><script> ga :<C-U>echo <SID>info(matchstr(getline('.')[col('.')-1:-1],'.'))<CR>
+nnoremap <silent><script> <Plug>(characterize) :<C-U>echo <SID>info(matchstr(getline('.')[col('.')-1:-1],'.'))<CR>
+if !hasmapto('<Plug>(characterize)', 'n')
+  nmap ga <Plug>(characterize)
+endif
 
 " vim:set sw=2 et: