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.

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.


"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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.