Substituir caracteres unicode no VIM?

16

Eu tenho alguns logs de uma máquina Windows, que contém várias instâncias de <200e>, eu sei que é um caractere unicode, mas como posso removê-lo com o scomando?

Não sei como inserir isso na command"linha".

EDITAR

Este é um caractere unicode, o que significa que eu posso excluí-lo com uma única xtecla pressionada .. não são 6 caracteres <200e>...

margarida
fonte
você checou este post? stackoverflow.com/questions/8562354/…
Rahul Patil

Respostas:

23

De :help i_CTRL-V_digit:

Com CTRL-V, o valor decimal, octal ou hexadecimal de um caractere pode ser inserido diretamente. Dessa forma, você pode inserir qualquer caractere, exceto uma quebra de linha (, valor 10). Existem cinco maneiras de inserir o valor do caractere:

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)

Isso significa que você pode usar <Ctrl-v>u200epara inserir o caractere e usá-lo normalmente nos comandos substitutos ou em qualquer outro lugar.

:%s/<Ctrl-v>u200e//g
Marco
fonte
7
Há também uma maneira específica de regexp de indicar caracteres estendidos, veja :help /\%u(isso permite digitar sem ter que usar Cv, ou seja, é fácil “colar”):%s/\%u200e//g
Chris Johnsen
Notei que notações como \% u200e não funcionam se eu usar \ v na frente dela para obter uma expressão regular estendida. Seria ótimo para saber como fazê-lo funcionar ...
ka3ak