且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何搜索/替换特殊字符?

更新时间:2023-12-05 13:30:04

查看\%u的帮助:

/\%d/\%x/\%o/\%u/\%U E678\%d123 匹配用十进制数指定的字符.一定是后跟一个非数字.\%o40 匹配指定的八进制数到 0377 的字符.040 以下的数字必须后跟非八进制数字或非数字.\%x2a 匹配最多两个十六进制字符指定的字符.\%u20AC 匹配最多四个十六进制指定的字符人物.\%U1234abcd 匹配最多八个十六进制指定的字符人物.

这些是您可以使用的序列.看起来你有两个字节,所以 \%u200e应该匹配.总之,挺奇怪的.UTF-8/ASCII 中的 20 是空格字符,0e 是 ^N.检查您的编码设置.

After a copy-paste from Wikipedia into Vim, I get this:

  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

The problem is that <200e> is only a char.

I'd like to know how to put it in a search/replace (via the / or :).

Check the help for \%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.

These are sequences you can use. Looks like you have two bytes, so \%u200e should match it. Anyway, it's pretty strange. 20 in UTF-8 / ASCII is the space character, and 0e is ^N. Check your encoding settings.