Unicode in einem regulären Emacs-Ausdruck

Unicode in einem regulären Emacs-Ausdruck

Ich verwende Emacs 24.

Wie kann ich alle Vorkommen des nicht druckbaren Unicode-Bidi-Zeichens RTL ersetzen, dessen Hexadezimalzahl lautet 202e? Ich möchte es durch das nicht druckbare Unicode-Bidi-Zeichen LTR ersetzen, dessen Hexadezimalzahl lautet 202d?

Könnte mir jemand einen Rat geben?

Antwort1

Dies erfordert, enable-recursive-minibuffersdass der Wert auf ungleich Null gesetzt ist:

M-xErsetzen von regulärem AusdruckRET C-x 8 RET 202e RET RET C-x 8 RET 202d RET RET

Antwort2

  1. Fügen Sie am Anfang des Puffers den folgenden Emacs Lisp-Code hinzu:

    (while (re-search-forward "\u202e" nil t)
            (replace-match     "\u202d"))

  2. Platzieren Sie den Cursor direkt hinter der letzten Klammer und geben Sie ein, C-xC-eum den Code auszuführen.

Antwort3

M-x replace-regexp RET \u202e RET \u202d

Antwort4

Geben Sie Folgendes ein:

M-% C-q 20056 RET RET C-q 20055 RET RET

C-qgefolgt von einer Oktalzahl und RETfügt das durch die Oktalzahl dargestellte Zeichen ein und verwirft das RET. Um Hex schnell in Oktal umzuwandeln, geben Sie #x202eeine M-:Eingabeaufforderung ein, die die resultierende Zahl in Dezimal-, Oktal- und Hex-Format ausgibt.

Um die Eingabe von Dezimalzahlen zu vereinfachen, ähnlich der GTK- C-S-uBindung, verwende ich Folgendes in meinem .emacs:

(global-set-key [(control shift u)]
                (lambda ()
                  (interactive)
                  (let ((read-quoted-char-radix 16))
                    (call-interactively 'quoted-insert))))

verwandte Informationen