Xem điểm mã Unicode của ký tự hiện tại


36

Làm cách nào tôi có thể thấy điểm mã Unicode của ký tự có con trỏ? Ví dụ: nếu con trỏ của tôi nằm trên một ký tự, tôi muốn Vim nói với tôi rằng đó là U + 2318 .

Thông tin thay thế, chẳng hạn như đại diện cơ sở 10 (8984) hoặc đại diện UTF-8 (E2 8C 98) sẽ được chấp nhận.

Tôi hỏi về Unicode và UTF-8 vì chúng phổ biến nhất, nhưng nếu câu trả lời khái quát cho các bộ ký tự và mã hóa khác, thì đó cũng là điều tốt để biết.

Câu trả lời:


45

Bạn có thể sử dụng %bhoặc %Btrong statuslinehoặc rulerformat. Từ :help statusline:

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

Ví dụ:

set statusline=%b\ %B

Mang đến cho bạn:

8984 2318

Một cách khác là sử dụng gahoặc :asciilệnh. Từ :help ga:

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

Mà sẽ cung cấp cho bạn:

<⌘> 8984, Hex 2318, Octal 21430

Một ánh xạ hữu ích khác là g8:

e2 8c 98

Mà in giá trị hex của các byte thực được lưu trữ trong tệp (lệnh này giả sử UTF-8).

Ngoài ra, có hai plugin hữu ích bạn có thể sử dụng:

  • unicode.vim thêm các lệnh liên quan đến unicode hữu ích khác nhau. Sử dụng :UnicodeNameđể có được thông tin chi tiết về nhân vật dưới con trỏ.

  • đặc trưng.vim ; điều này mở rộng galệnh với tên unicode, tương tự như unicode.vim.


"Lệnh này giả định UTF-8" - tài liệu nói điều này, nhưng kinh nghiệm của tôi là nó hoạt động ở bất kỳ encoding(nhưng không tôn trọng fileencoding).
Random832

3
Sau khi thử nghiệm thêm, một if encodingđược đặt thành mã hóa đa nhân không utf8 như cp932, g8sẽ chỉ in byte đầu tiên, nhưng gasẽ hiển thị số ký tự đầy đủ.
Random832

Có cách nào để đầu ra của g8 xuất hiện trong dòng trạng thái không? Giống như câu hỏi ban đầu với phần "thông tin thay thế".
0fnt
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.