Thay thế ký tự unicode trong VIM?


16

Tôi đã nhận được một số nhật ký từ một máy tính windows, trong đó có nhiều phiên bản <200e>, tôi biết đó là một char unicode, nhưng làm cách nào để xóa nó bằng slệnh?

Tôi không biết làm thế nào để nhập vào command"dòng".

BIÊN TẬP

Đây là một char unicode, có nghĩa là tôi có thể xóa nó bằng xcách nhấn một phím .. nó không phải là 6 ký tự <200e>...


bạn đã kiểm tra bài này chưa? stackoverflow.com/questions/8562354/ hy
Rahul Patil

Câu trả lời:


23

Từ :help i_CTRL-V_digit:

Với CTRL-V, giá trị thập phân, bát phân hoặc thập lục phân của ký tự có thể được nhập trực tiếp. Bằng cách này, bạn có thể nhập bất kỳ ký tự nào, ngoại trừ ngắt dòng (, giá trị 10). Có năm cách để nhập giá trị ký tự:

first char  mode         max nr of chars   max value
( none )    decimal        3               255
o or O      octal          3               377      (255)
x or X      hexadecimal    2               ff       (255)
u           hexadecimal    4               ffff     (65535)
U           hexadecimal    8               7fffffff (2147483647)

Điều này có nghĩa là bạn có thể sử dụng <Ctrl-v>u200eđể nhập ký tự và sử dụng nó như bình thường trong các lệnh thay thế hoặc ở nơi khác.

:%s/<Ctrl-v>u200e//g

7
Ngoài ra còn có một cách cụ thể để khai thác để biểu thị các ký tự mở rộng, xem :help /\%u(cách này cho phép bạn nhập mà không cần phải sử dụng Cv, tức là rất dễ dàng để dán miếng dán):%s/\%u200e//g
Chris Johnsen

Tôi đã nhận thấy rằng các ký hiệu như \% u200e không hoạt động nếu tôi sử dụng \ v trước nó cho biểu thức chính quy mở rộng. Sẽ thật tuyệt khi biết làm thế nào để nó hoạt động ...
ka3ak
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.