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


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

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.