Cuando copio texto no ascii de Windows y lo pego en Emacs, aparece como una secuencia octal. Por ejemplo, si pego ä en Emacs, aparece como \ 344.
Podría escribir Cq 344 para recuperar el ä en Emacs. Eso es molesto, pero es tolerable si solo hay un personaje. Pero si hay muchos caracteres convertidos en secuencias de escape octal, sería conveniente ejecutar algún comando en una región para convertir todo lo que contiene. ¿Ya existe tal comando? Si no, ¿cómo escribirías una función para hacerlo?
[Configuré mi sistema de codificación predeterminado en utf-8 en mi archivo .emacs, y uso el mismo archivo .emacs en Windows y Linux. Pero el problema solo ocurre cuando se copia desde una aplicación de Windows a Emacs. Copiar de Emacs a otra aplicación de Windows funciona bien.]
fuente
revert-buffer-with-coding-system
(ver su documentación). Emacs muestra los caracteres de esta manera porque los copió de un entorno que estaba en un sistema de codificación diferente (suponiendo ANSI con los llamados caracteres de alto ASCII utilizados para representar el latín con diacríticos), pero su búfer debe estar usando algo como UTF-8 (para qué caracteres ASCII con bits altos establecidos no tienen significado, es decir, no son válidos).set-clipboard-coding-system
. IntenteC-h a coding-system
ver qué otras funciones de este grupo están disponibles.emacs -Q
y si ves el problema existe ya,M-x report-emacs-bug
.insert-file-literally
(y ya era demasiado tarde para deshacer o eliminar / reinsertar el archivo).Respuestas:
Resulta que la parte ofensiva de mi archivo .emacs era
(set-selection-coding-system 'utf-8)
. Una vez que eliminé esa línea, Emacs se comportó como se esperaba.fuente
Una vez hecho esto:
de misc-utils.el en https://launchpad.net/sx-emacs-werkstatt
fuente