как заменить 'ЛЕВАЯ-ПРАВАЯ МАРКА' (U + 200E) - <200e> на vim - PullRequest
5 голосов
/ 03 марта 2011

Вот как этот специальный символ отображается в vim:

LEFT-TO-RIGHT MARK

Я пробовал с /\x20(\x0e|\x0f)/ и /\xe2\x80[\x8e\x8f]/ без результатов.

Ответы [ 4 ]

7 голосов
/ 03 марта 2011

Во-первых, если вы хотите заменить байт 0x20 (это пробел, если я не ошибаюсь), вам нужно использовать \%x20, а не \x20, потому что \x обозначает шестнадцатеричную цифру (если не используется внутри коллекции, \x20 означает то, что ожидалось).Но если вы хотите заменить данный символ Unicode, вы должны использовать \%u200E (\u200E внутри коллекции).

Во-вторых, и \%x20, и [\x20] будут соответствовать символу с кодом Unicode 0x20, а небайт с кодом 0x20.Это не имеет значения для пробела, но имеет значение для кодовых точек> 0x7F.

3 голосов
/ 03 марта 2011

Попробуйте заменить \u200e:)

Вы можете проверить это, вставив этот символ в буфер и увидев, что он отображается как <200e>, если вы наберете его в режиме вставки: <C-R>="\u200e"<CR> (это CTRL + R, а <CR> означает ENTER )

2 голосов
/ 03 марта 2011

Я бы поставил курсор на синий <200e>, затем набрал yl, чтобы восстановить (скопировать) символ.

Затем введите :%s/<C-R>"/replacement/g

(где <C-R> - это, конечно, Control+R).

2 голосов
/ 03 марта 2011

Используйте механизм вашего терминала для ввода символов по коду Unicode. В случае gnome-терминала это Ctrl Shift U , за которым следует шестнадцатеричный код (например, 200e), а затем Enter .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...