Unicode em uma expressão regular do Emacs

5

Estou usando o emacs 24.

Como posso substituir todas as ocorrências do caractere de bidirecional Unicode imprimível RTL, cujo número hexadecimal é 202e ? Eu quero substituí-lo com o caractere de bidirecional Unicode imprimível LTR, cujo número hexadecimal é 202d ?

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

    
por Evan Aad 12.11.2012 / 19:25

4 respostas

2
  1. Adicione a seguinte parte do código Lisp do emacs 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-x C-e para executar o código.

por 13.11.2012 / 08:25
4

Isso requer que enable-recursive-minibuffers esteja definido como não nulo:

Mx substitua-regexp RET Cx 8 RET 202e RET RET Cx 8 RET 202d RET RET

    
por 12.11.2012 / 21:51
1
M-x replace-regexp RET \u202e RET \u202d
    
por 12.11.2012 / 19:50
1

Digite o seguinte:

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

C-q seguido por um número octal e RET inserirá o caractere representado pelo número octal e descartará o RET . Para converter rapidamente hex para octal, digite #x202e em um prompt M -: , que imprimirá o número resultante em decimal, octal e hexadecimal.

Para facilitar a entrada de números decimais, como na ligação C-S-u do GTK, eu uso isso no meu .emacs :

(global-set-key [(control shift u)]
                (lambda ()
                  (interactive)
                  (let ((read-quoted-char-radix 16))
                    (call-interactively 'quoted-insert))))
    
por 12.11.2012 / 21:47