Unicode em uma expressão regular do Emacs

Unicode em uma expressão regular do Emacs

Estou usando o emacs 24.

Como posso substituir todas as ocorrências do caractere bidi Unicode não imprimível RTL, cujo número hexadecimal é 202e? Quero substituí-lo pelo caractere bidi Unicode não imprimível LTR, cujo número hexadecimal é 202d?

Alguém poderia me dar alguma orientação?

Responder1

Isso requer enable-recursive-minibuffersque esteja definido como diferente de zero:

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

Responder2

  1. Adicione o seguinte trecho de código emacs Lisp no início do buffer:

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

  2. Coloque o cursor logo após o último parêntese e digite C-xC-epara executar o código.

Responder3

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

Responder4

Digite o seguinte:

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

C-qseguido por um número octal e RETirá inserir o caracter representado pelo número octal e descartar o RET. Para converter rapidamente hexadecimal em octal, digite #x202eum M-:prompt, que imprimirá o número resultante em decimal, octal e hexadecimal.

Para permitir uma entrada mais fácil de números decimais, como C-S-ua ligação do GTK, eu uso isso em meu .emacs:

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

informação relacionada