Reemplazar caracteres unicode en VIM?


16

Obtuve algunos registros de una máquina Windows, que contiene varias instancias de <200e>, sé que es un char unicode, pero ¿cómo puedo eliminarlo con el scomando?

No sé cómo ingresar eso en la command"línea".

EDITAR

Este es un carácter unicode, lo que significa que puedo eliminarlo xpresionando una sola tecla ... no son 6 caracteres <200e>...


¿has revisado esta publicación? stackoverflow.com/questions/8562354/…
Rahul Patil

Respuestas:


23

De :help i_CTRL-V_digit:

Con CTRL-V se puede ingresar directamente el valor decimal, octal o hexadecimal de un carácter. De esta manera, puede ingresar cualquier carácter, excepto un salto de línea (valor 10). Hay cinco formas de ingresar el valor del carácter:

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)

Esto significa que puede usar <Ctrl-v>u200epara ingresar el carácter y usarlo como de costumbre en comandos sustitutos o en otro lugar.

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

77
También hay una forma específica de expresiones regulares para denotar caracteres extendidos, vea :help /\%u(esto le permite escribir sin tener que usar Cv, es decir, es fácil de "pegar"):%s/\%u200e//g
Chris Johnsen

He notado que la notación como \% u200e no funciona si uso \ v delante de ella para una expresión regular extendida. Sería genial saber cómo hacerlo funcionar ...
ka3ak
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.