Zastąpić znaki Unicode w VIM?

16

Mam dzienniki z komputera z systemem Windows, który zawiera wiele wystąpień. <200e>Wiem, że jest to znak Unicode, ale jak mogę go usunąć za pomocą spolecenia?

Nie wiem, jak wpisać to w command„wierszu”.

EDYTOWAĆ

Jest to znak Unicode, co oznacza, że ​​mogę go usunąć za xpomocą naciśnięcia jednego klawisza. To nie jest 6 znaków <200e>...

stokrotka
źródło
sprawdziłeś ten post? stackoverflow.com/questions/8562354/…
Rahul Patil

Odpowiedzi:

23

Od :help i_CTRL-V_digit:

Za pomocą CTRL-V można wprowadzić bezpośrednio liczbę dziesiętną, ósemkową lub szesnastkową znaku. W ten sposób możesz wprowadzić dowolny znak, z wyjątkiem podziału linii (, wartość 10). Istnieje pięć sposobów wprowadzenia wartości postaci:

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)

Oznacza to, że możesz użyć <Ctrl-v>u200edo wprowadzenia znaku i używać go jak zwykle w poleceniach zastępczych lub w innym miejscu.

:%s/<Ctrl-v>u200e//g
Marco
źródło
7
Istnieje również specyficzny dla wyrażenia regularnego sposób oznaczania znaków rozszerzonych, patrz :help /\%u(pozwala to pisać bez konieczności używania Cv, tj. Łatwo jest „wkleić”):%s/\%u200e//g
Chris Johnsen
Zauważyłem, że notacja typu \% u200e nie działa, jeśli używam \ v przed nią do rozszerzonego wyrażenia regularnego. Byłoby wspaniale wiedzieć, jak to działa ...
ka3ak