Sostituisci i caratteri Unicode in VIM?


16

Ho ricevuto alcuni registri da un computer Windows, che contiene più istanze di <200e>, so che è un carattere Unicode, ma come posso rimuoverlo con il scomando?

Non so come inserirlo nella command"riga".

MODIFICARE

Questo è un carattere unicode, il che significa che posso eliminarlo xpremendo un solo tasto .. non sono 6 caratteri <200e>...


Risposte:


23

Da :help i_CTRL-V_digit:

Con CTRL-V è possibile immettere direttamente il valore decimale, ottale o esadecimale di un carattere. In questo modo è possibile inserire qualsiasi carattere, tranne un'interruzione di riga (, valore 10). Esistono cinque modi per inserire il valore del carattere:

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)

Questo significa che puoi usare <Ctrl-v>u200eper inserire il personaggio e usarlo come al solito nei comandi sostitutivi o altrove.

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

7
C'è anche un modo specifico di regexp per indicare i caratteri estesi, vedi :help /\%u(questo ti permette di digitare senza dover usare Cv, cioè è facile "incollare"):%s/\%u200e//g
Chris Johnsen il

Ho notato che la notazione come \% u200e non funziona se uso \ v davanti ad essa per un'espressione regolare estesa. Sarebbe bello sapere come farlo funzionare ...
ka3ak,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.