Voir le point de code Unicode du caractère actuel

36

Comment puis-je voir le point de code Unicode du caractère où se trouve le curseur? Par exemple, si mon curseur est sur un caractère, j'aimerais que Vim me dise qu'il s'agit de U + 2318 .

Des informations alternatives, telles que la représentation en base 10 (8984) ou la représentation en UTF-8 (E2 8C 98) seraient acceptables.

Je pose des questions sur Unicode et UTF-8 car ils sont les plus courants, mais si la réponse se généralise à d'autres jeux de caractères et encodages, il serait bon de le savoir également.

200_success
la source

Réponses:

45

Vous pouvez utiliser %bou %Bdans statuslineou rulerformat. De :help statusline:

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

Par exemple:

set statusline=%b\ %B

Vous donne:

8984 2318

Une autre façon consiste à utiliser gaou la :asciicommande. 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.

Ce qui vous donnera:

<⌘> 8984, Hex 2318, Octal 21430

Une autre cartographie utile est g8:

e2 8c 98

Ce qui affiche la valeur hexadécimale des octets réels stockés dans le fichier (cette commande suppose UTF-8).

De plus, vous pouvez utiliser deux plugins utiles:

  • Unicode.vim ajoute diverses commandes utiles liées à Unicode. Utilisez :UnicodeNamepour obtenir des détails sur le caractère sous le curseur.

  • caractérise.vim ; cela développe la gacommande avec le nom unicode, similaire à unicode.vim.

Martin Tournoij
la source
"cette commande suppose UTF-8" - la documentation l'indique, mais mon expérience est que cela fonctionne dans n'importe quel mode encoding(mais ne le respecte pas fileencoding).
Random832
3
Après de nouvelles expériences, if encodingest défini sur un codage multi-octets non-utf8 tel que cp932, n'imprimera g8que le premier octet, mais gaindiquera le numéro de caractère complet.
Random832
Existe-t-il un moyen de faire apparaître la sortie de g8 dans statusline à part entière? Un peu comme la question initiale avec la partie "information alternative".
0fnt