Remplacer les caractères unicode dans VIM?


16

J'ai reçu des journaux d'une machine Windows, qui contient plusieurs instances de <200e>, je sais que c'est un caractère unicode, mais comment puis-je le supprimer avec la scommande?

Je ne sais pas comment entrer cela dans la command"ligne".

ÉDITER

Ceci est un caractère unicode, ce qui signifie que je peux le supprimer en xappuyant sur une seule touche .. ce n'est pas 6 caractères <200e>...


Réponses:


23

De :help i_CTRL-V_digit:

Avec CTRL-V, la valeur décimale, octale ou hexadécimale d'un caractère peut être entrée directement. De cette façon, vous pouvez entrer n'importe quel caractère, sauf un saut de ligne (, valeur 10). Il existe cinq façons d'entrer la valeur du caractère:

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)

Cela signifie que vous pouvez utiliser <Ctrl-v>u200epour saisir le caractère et l'utiliser comme d'habitude dans des commandes de substitution ou ailleurs.

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

7
Il existe également un moyen spécifique aux expressions rationnelles pour désigner les caractères étendus, voir :help /\%u(cela vous permet de taper sans avoir à utiliser Cv, c'est-à-dire qu'il est facile de «coller»):%s/\%u200e//g
Chris Johnsen

J'ai remarqué que la notation comme \% u200e ne fonctionne pas si j'utilise \ v devant pour une expression régulière étendue. Ce serait génial de savoir comment le faire fonctionner ...
ka3ak
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.