
Я использую 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
Добавьте следующий фрагмент кода emacs Lisp в начало буфера:
(while (re-search-forward "\u202e" nil t)
(replace-match "\u202d"))Поместите курсор сразу после последней скобки и введите команду 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))))