См. Кодовую точку Unicode текущего символа

36

Как я могу увидеть кодовую точку Unicode символа, где находится курсор? Например, если мой курсор находится на символе, я бы хотел, чтобы Vim сказал мне, что это U + 2318 .

Альтернативная информация, такая как представление base-10 (8984) или представление UTF-8 (E2 8C 98), будет приемлемой.

Я спрашиваю о Unicode и UTF-8, потому что они являются наиболее распространенными, но если ответ обобщает другие наборы символов и кодировки, это было бы также полезно знать.

200_success
источник

Ответы:

45

Вы можете использовать %bили %Bв statuslineили rulerformat. От :help statusline:

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

Например:

set statusline=%b\ %B

Дает тебе:

8984 2318

Другой способ - использовать gaили :asciiкоманду. От :help ga:

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

Который даст вам:

<⌘> 8984, Hex 2318, Octal 21430

Еще одно полезное отображение g8:

e2 8c 98

Который печатает шестнадцатеричное значение фактических байтов, хранящихся в файле (эта команда предполагает UTF-8).

Кроме того, есть два полезных плагина, которые вы можете использовать:

  • unicode.vim добавляет различные полезные команды, связанные с юникодом. Используйте :UnicodeNameдля получения подробной информации о персонаже под курсором.

  • характеризовать.вим ; это расширяет gaкоманду с именем unicode, аналогично unicode.vim.

Мартин Турной
источник
«эта команда предполагает UTF-8» - в документации сказано это, но мой опыт показывает, что она работает по-любому encoding(но не уважает fileencoding).
Random832
3
После дальнейших экспериментов, если для if encodingзадано многобайтовое кодирование не-utf8, такое как cp932, g8будет напечатан только первый байт, но gaбудет показан полный номер символа.
Random832
Есть ли способ, чтобы вывод g8 появлялся в статусной строке сам по себе? Вроде как оригинальный вопрос с «альтернативной информацией».
0