Wenn ich Nicht-ASCII-Text aus Windows kopiere und in Emacs einfüge, wird er als oktale Sequenz angezeigt. Wenn ich beispielsweise ä in Emacs einfüge, wird es als \ 344 angezeigt.
Ich könnte Cq 344 eingeben, um das ä in Emacs zurückzubekommen. Das ist ärgerlich, aber es ist erträglich, wenn es nur einen Charakter gibt. Wenn jedoch viele Zeichen in oktale Escape-Sequenzen umgewandelt werden, ist es praktisch, einen Befehl für eine Region auszuführen, um alles darin zu konvertieren. Gibt es schon so einen Befehl? Wenn nicht, wie würden Sie eine Funktion schreiben, um dies zu tun?
[Ich habe mein Standardcodierungssystem in meiner .emacs-Datei auf utf-8 gesetzt und verwende dieselbe .emacs-Datei unter Windows und Linux. Das Problem tritt jedoch nur beim Kopieren von einer Windows-Anwendung in Emacs auf. Das Kopieren von Emacs in eine andere Windows-Anwendung funktioniert einwandfrei.]
quelle
revert-buffer-with-coding-system
(siehe Dokumentation). Emacs zeigt die Zeichen auf diese Weise an, weil Sie sie aus einer Umgebung kopiert haben, die sich in einem anderen Codierungssystem befand (vorausgesetzt, ANSI mit sogenannten hohen ASCII-Zeichen, die zum Rendern von Latein mit diakritischen Zeichen verwendet werden), aber Ihr Puffer muss so etwas wie UTF-8 (für welche ASCII-Zeichen mit hohen Bits keine Bedeutung haben, dh ungültig sind).set-clipboard-coding-system
. Versuchen Sie herauszufindenC-h a coding-system
, welche anderen Funktionen in dieser Gruppe verfügbar sind.emacs -Q
Sie zB mit und wenn Sie das Problem dort bereits sehen ,M-x report-emacs-bug
.insert-file-literally
(und es war zu spät, um die Datei entweder rückgängig zu machen oder zu löschen / wieder einzufügen).Antworten:
Es stellte sich heraus, dass der beleidigende Teil meiner .emacs-Datei war
(set-selection-coding-system 'utf-8)
. Nachdem ich diese Zeile entfernt hatte, verhielt sich Emacs wie erwartet.quelle
Einmal gemacht:
von misc-utils.el unter https://launchpad.net/sx-emacs-werkstatt
quelle