Zobacz punkt kodowy Unicode bieżącego znaku

36

Jak mogę zobaczyć punkt kodowy Unicode znaku, w którym znajduje się kursor? Na przykład, jeśli mój kursor jest na postaci, chciałbym, aby Vim powiedział mi, że jest to U + 2318 .

Dopuszczalne byłyby alternatywne informacje, takie jak reprezentacja base-10 (8984) lub reprezentacja UTF-8 (E2 8C 98).

Pytam o Unicode i UTF-8, ponieważ są one najbardziej powszechne, ale jeśli odpowiedź uogólnia się na inne zestawy znaków i kodowania, dobrze byłoby również wiedzieć.

200_sukces
źródło

Odpowiedzi:

45

Możesz użyć %blub %Bw statuslinelub rulerformat. Od :help statusline:

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

Na przykład:

set statusline=%b\ %B

Daje Ci:

8984 2318

Innym sposobem jest użycie galub :asciipolecenie. Od :help ga:

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

Co da ci:

<⌘> 8984, Hex 2318, Octal 21430

Kolejnym przydatnym mapowaniem jest g8:

e2 8c 98

Który wypisuje wartość szesnastkową rzeczywistych bajtów przechowywanych w pliku (to polecenie zakłada UTF-8).

Ponadto istnieją dwie przydatne wtyczki, których możesz użyć:

  • unicode.vim dodaje różne przydatne polecenia związane z Unicode. Użyj, :UnicodeNameaby uzyskać szczegółowe informacje o znaku pod kursorem.

  • characterize.vim ; rozszerza to gapolecenie o nazwę unicode, podobną do unicode.vim.

Martin Tournoij
źródło
„to polecenie zakłada UTF-8” - dokumentacja to mówi, ale z mojego doświadczenia wynika, że ​​działa w każdym encoding(ale nie szanuje fileencoding).
Random832
3
Po dalszych eksperymentach, if encodingjest ustawione na wielobajtowe kodowanie inne niż utf8, takie jak cp932, g8wydrukuje tylko pierwszy bajt, ale gawyświetli pełny numer znaku.
Random832
Czy istnieje sposób, aby wyjście g8 pojawiało się w linii statusu samo w sobie? Trochę jak oryginalne pytanie z częścią „informacje alternatywne”.
0