Unicode-Zeichen in VIM ersetzen?

16

Ich habe einige Protokolle von einem Windows-Computer erhalten, der mehrere Instanzen von enthält <200e>. Ich weiß, dass es sich um ein Unicode-Zeichen handelt. Aber wie kann ich es mit dem sBefehl entfernen ?

Ich weiß nicht, wie ich das in die command"Zeile" eingeben soll.

BEARBEITEN

Dies ist ein Unicode-Zeichen, was bedeutet, dass ich es mit einem einzigen xTastendruck löschen kann . Es sind keine 6 Zeichen <200e>...

Gänseblümchen
quelle
Hast du diesen Beitrag überprüft? stackoverflow.com/questions/8562354/…
Rahul Patil

Antworten:

23

Von :help i_CTRL-V_digit:

Mit STRG-V kann der Dezimal-, Oktal- oder Hexadezimalwert eines Zeichens direkt eingegeben werden. Auf diese Weise können Sie ein beliebiges Zeichen mit Ausnahme eines Zeilenumbruchs (Wert 10) eingeben. Es gibt fünf Möglichkeiten, den Zeichenwert einzugeben:

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)

Dies bedeutet, dass Sie <Ctrl-v>u200edas Zeichen eingeben und wie gewohnt in Ersatzbefehlen oder an anderer Stelle verwenden können.

:%s/<Ctrl-v>u200e//g
Marco
quelle
7
Es gibt auch eine regexp-spezifische Möglichkeit, erweiterte Zeichen zu kennzeichnen, siehe :help /\%u(dies ermöglicht das Eingeben ohne Verwendung von Cv, dh es ist einfach einzufügen):%s/\%u200e//g
Chris Johnsen
Mir ist aufgefallen, dass eine Notation wie \% u200e nicht funktioniert, wenn ich \ v davor für erweiterte reguläre Ausdrücke verwende. Wäre toll zu wissen, wie es funktioniert ...
Ka3ak