Заменить символы Юникода в VIM?


16

Я получил несколько журналов от машины Windows, которая содержит несколько экземпляров <200e>, я знаю, что это символ Юникода, но как я могу удалить его с помощью sкоманды?

Я не знаю, как ввести это в command«строке».

РЕДАКТИРОВАТЬ

Это символ Юникода, что означает, что я могу удалить это одним xнажатием клавиши ... это не 6 символов <200e>...


ты проверил этот пост? stackoverflow.com/questions/8562354/…
Рахул Патил

Ответы:


23

От :help i_CTRL-V_digit:

С помощью CTRL-V можно вводить десятичное, восьмеричное или шестнадцатеричное значение символа напрямую. Таким образом, вы можете ввести любой символ, кроме разрыва строки (, значение 10). Существует пять способов ввода значения символа:

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)

Это означает, что вы можете использовать <Ctrl-v>u200eдля ввода символа и использовать его как обычно в командах замены или в другом месте.

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

7
Существует также специальный способ регулярного выражения для обозначения расширенных символов, см. :help /\%u(Это позволяет печатать без необходимости использовать Cv, т.е. его легко «вставить»):%s/\%u200e//g
Крис Джонсен,

Я заметил, что обозначение типа \% u200e не работает, если я использую \ v перед ним для расширенного регулярного выражения. Было бы замечательно знать, как заставить это работать ...
ka3ak
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.