Ver el punto de código Unicode del carácter actual

36

¿Cómo puedo ver el punto de código Unicode del carácter donde está el cursor? Por ejemplo, si mi cursor está en un personaje, me gustaría que Vim me dijera que es U + 2318 .

Sería aceptable información alternativa, como la representación de base 10 (8984) o la representación de UTF-8 (E2 8C 98).

Pregunto sobre Unicode y UTF-8 porque son los más comunes, pero si la respuesta se generaliza a otros conjuntos de caracteres y codificaciones, también sería bueno saberlo.

200_success
fuente

Respuestas:

45

Puedes usar %bo %Ben statuslineo rulerformat. De :help statusline:

b N   Value of character under cursor. 
B N   As above, in hexadecimal. 

Por ejemplo:

set statusline=%b\ %B

Te dio:

8984 2318

Otra forma es usar gao el :asciicomando. De :help ga:

:as[cii]        or                                      ga :as :ascii
ga                      Print the ascii value of the character under the
                        cursor in decimal, hexadecimal and octal.

Lo que te dará:

<⌘> 8984, Hex 2318, Octal 21430

Otro mapeo útil es g8:

e2 8c 98

Que imprime el valor hexadecimal de los bytes reales almacenados en el archivo (este comando asume UTF-8).

Además, hay dos complementos útiles que podría usar:

  • unicode.vim agrega varios comandos útiles relacionados con unicode. Use :UnicodeNamepara obtener detalles del personaje debajo del cursor.

  • caracterizar.vim ; Esto expande el gacomando con el nombre Unicode, similar a Unicode.vim.

Martin Tournoij
fuente
"este comando asume UTF-8" - la documentación dice esto, pero mi experiencia es que funciona en cualquier encoding(pero no respeta fileencoding).
Random832
3
Después de más experimentación, un if encodingse establece en una codificación multibyte no utf8 como cp932, g8solo imprimirá el primer byte, pero gamostrará el número de carácter completo.
Random832
¿Hay alguna manera de que la salida de g8 aparezca en la línea de estado por sí misma? Algo así como la pregunta original con la parte de "información alternativa".
0fnt