Unicode en una expresión regular de Emacs

Unicode en una expresión regular de Emacs

Estoy usando emacs 24.

¿Cómo puedo reemplazar todas las apariciones del carácter bidi Unicode RTL no imprimible, cuyo número hexadecimal es 202e? Quiero reemplazarlo con el carácter bidi Unicode no imprimible LTR, cuyo número hexadecimal es 202d?

¿Alguien podría darme alguna orientación?

Respuesta1

Esto requiere enable-recursive-minibuffersque se establezca en un valor distinto de nulo:

M-xreemplazar-regexpRET C-x 8 RET 202e RET RET C-x 8 RET 202d RET RET

Respuesta2

  1. Agregue el siguiente fragmento de código emacs Lisp al principio del búfer:

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

  2. Coloque el cursor justo después del último paréntesis y escriba C-xC-epara ejecutar el código.

Respuesta3

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

Respuesta4

Escriba lo siguiente:

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

C-qseguido de un número octal e RETinsertará el carácter representado por el número octal y descartará el RET. Para convertir rápidamente hexadecimal a octal, escriba #x202eun M-:mensaje que imprimirá el número resultante en decimal, octal y hexadecimal.

Para permitir una entrada más sencilla de números decimales, al estilo del enlace GTK C-S-u, uso esto en mi .emacs:

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

información relacionada