vim: как искать / заменять специальные символы? - PullRequest
24 голосов
/ 09 декабря 2011

После копирования-вставки из википедии в vim я получаю следующее:

  1 A
  2 
  3 [+] Métier agricole<200e> – 44 P • 2 C
  4 [×] Métier de l'ameublement<200e> – 10 P
  5 [×] Métier de l'animation<200e> – 5 P
  6 [+] Métier en rapport avec l'art<200e> – 11 P • 4 C
  7 [×] Métier en rapport avec l'automobile<200e> – 10 P
  8 [×] Métier de l'aéronautique<200e> – 15 P

Проблема в том, что <200e> - это только символ.

Я хотел бы знать, как поместить его в поиск / замену (через / или :).

Ответы [ 3 ]

28 голосов
/ 09 декабря 2011

Проверьте справку для \%u:

                                /\%d /\%x /\%o /\%u /\%U E678

\%d123  Matches the character specified with a decimal number.  Must be
        followed by a non-digit.
\%o40   Matches the character specified with an octal number up to 0377.
        Numbers below 040 must be followed by a non-octal digit or a non-digit.
\%x2a   Matches the character specified with up to two hexadecimal characters.
\%u20AC Matches the character specified with up to four hexadecimal
        characters.
\%U1234abcd     Matches the character specified with up to eight hexadecimal
        characters.

Это последовательности, которые вы можете использовать. Похоже, у вас есть два байта, поэтому \%u200e должно соответствовать этому. Во всяком случае, это довольно странно. 20 в UTF-8 / ASCII это пространство символ, а 0e это ^ N. Проверьте настройки кодировки.

4 голосов
/ 09 декабря 2011

Если вы хотите быстро выбрать этот посторонний символ везде и заменить его / избавиться от него, вы можете:

  1. выделить один из странных символов, добавив пробел до и после него, поэтомуоно становится «словом»
  2. , используйте команду * для поиска слова под курсором.Если вы включили set hlsearch, вы должны увидеть все вхождения постороннего символа, выделенные.
  3. заменить последний найденный элемент чем-то другим, глобально: :%s//something else/
2 голосов
/ 06 января 2019
  1. заменить ^@

    :%s/\%x00//g

  2. заменить ^L

    // Введите ^ Lиспользование ctrl-V ctrl-L

    :%s/^L//g

относится:

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