查看当前字符的Unicode代码点


36

如何查看光标所在字符的Unicode代码点?例如,如果我的光标位于字符上,我想让Vim告诉我它是U + 2318

可以接受替代信息,例如以10为基的表示形式(8984)或以UTF-8表示的形式(E2 8C 98)。

我问一下Unicode和UTF-8,因为它们最常见,但是如果答案能推广到其他字符集和编码,那也很好。

Answers:


45

您可以使用%b%Bstatuslinerulerformat。来自: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添加了各种有用的与unicode相关的命令。使用:UnicodeName得到光标下字符的细节。

  • 特征。vim ; 这将ga使用unicode名称扩展命令,类似于unicode.vim。


“此命令假定使用UTF-8”-文档说明了这一点,但是我的经验是它可以在任何情况下工作encoding(但不尊重fileencoding)。
2015年

3
经过进一步实验后,如果encoding将if 设置为非utf8多字节编码(例如cp932),g8则只会打印第一个字节,但ga会显示完整的字符数。
Random832'2015-2-24

有没有办法让g8的输出本身出现在状态栏中?有点像原始问题,带有“替代信息”部分。
0fnt
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.