Emacs 正規表示式中的 Unicode

Emacs 正規表示式中的 Unicode

我使用的是 emacs 24。

如何替換所有出現的不可列印的 Unicode bidi 字元 RTL(其十六進位數為 )202e?我想將其替換為不可列印的 Unicode bidi 字元 LTR,其十六進制數是202d?

有人可以給我一些指導嗎?

答案1

這需要enable-recursive-minibuffers設定為非零:

M-x替換正規表示式RET C-x 8 RET 202e RET RET C-x 8 RET 202d RET RET

答案2

  1. 在緩衝區的開頭加入以下 emacs Lisp 代碼:

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

  2. 將遊標放在最後一個括號後面並鍵入C-xC-e以執行程式碼。

答案3

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

答案4

輸入以下內容:

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

C-q後面接著一個八進制數,RET並將插入該八進制數表示的字元並丟棄RET.若要快速將十六進制轉換為八進制,請鍵入#x202e提示M-:,該提示將以十進制、八進制和十六進制列印結果數字。

為了能夠更輕鬆地輸入十進制數字,就像 GTK 的C-S-u綁定一樣,我在我的.emacs

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

相關內容