Замінити символи unicode у VIM?


16

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

Я не знаю, як ввести це в command"рядок".

EDIT

Це таблиця unicode, що означає, що я можу видалити це одним xнатисканням клавіші .. це не 6 символів <200e>...


Ви перевіряли цю публікацію? stackoverflow.com/questions/8562354/…
Rahul Patil

Відповіді:


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
Існує також специфічний для regexp спосіб позначення розширених символів, див. :help /\%u(Це дозволяє вводити без використання Cv, тобто його легко "вставити"):%s/\%u200e//g
Chris Johnsen

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