Когда я копирую не-ascii текст из Windows и вставляю его в Emacs, он отображается в виде восьмеричной последовательности. Например, если я вставлю ä в Emacs, он отобразится как \ 344.
Я мог бы набрать Cq 344, чтобы вернуть ä в Emacs. Это раздражает, но терпимо, если есть только один персонаж. Но если есть много символов, превращенных в восьмеричные escape-последовательности, было бы удобно выполнить некоторую команду в регионе, чтобы преобразовать все внутри. Уже есть такая команда? Если нет, то как бы вы написали функцию для этого?
[Я установил систему кодирования по умолчанию на utf-8 в моем файле .emacs и использую один и тот же файл .emacs в Windows и Linux. Но проблема возникает только при копировании из приложения Windows в Emacs. Копирование из Emacs в другое приложение Windows работает нормально.]
источник
revert-buffer-with-coding-system
(см. Документацию). Emacs показывает символы таким образом, потому что вы скопировали их из среды, которая была в другой системе кодирования (предполагая, что ANSI с так называемыми символами высокого ASCII, использованными для рендеринга латиницы с диакритическими знаками), но ваш буфер должен использовать что-то вроде UTF-8 (для какие символы ASCII с установленными старшими битами не имеют значения, то есть недопустимы).set-clipboard-coding-system
. ПопробуйтеC-h a coding-system
посмотреть, какие другие функции в этой группе доступны.emacs -Q
и если вы видите проблему там ужеM-x report-emacs-bug
.insert-file-literally
(и было слишком поздно либо отменить, либо удалить / заново вставить файл).Ответы:
Оказывается, оскорбительная часть моего файла .emacs была
(set-selection-coding-system 'utf-8)
. Как только я удалил эту строку, Emacs вел себя как ожидалось.источник
Однажды сделал это:
от misc-utils.el по адресу https://launchpad.net/sx-emacs-werkstatt
источник