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>...


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

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.