Antworten:
Emacs Line Return und Windows, Unix, Mac, All That ^ M ^ J ^ L.
F: Warum zeigt Emacs ^ M in einem Puffer an?
A: Das "^ M" ist die ASCII-Caret-Notation für nicht druckbares Wagenrücklaufzeichen (ASCII 13). Wenn Emacs dies zeigt, liegt dies wahrscheinlich daran, dass Sie gemischte Zeichen aus ^ M und ^ J haben und Emacs diese nicht konsistent als Zeilenumbrüche interpretieren können.
Um dies zu beheben, rufen Sie "set-buffer-file-coding-system" auf und geben Sie dann eines der folgenden Elemente an: "mac", "dos", "unix". Speichern Sie dann die Datei. Wenn dies das Problem nicht behebt, können Sie es mithilfe von Suchen und Ersetzen manuell entfernen.
Ich weiß, dass es eine alte Frage ist, aber für die Aufzeichnung gibt es andere Gründe, warum ^ M am Ende von Dateien erscheint. Ich hatte gerade das gleiche Problem. Folgendes ist passiert:
Wie man es repariert:
Öffnen Sie dieselbe Datei auf VI (ja, ich weiß, der Erzfeind) und suchen Sie nach Zeichen, die in einer hervorgehobenen Farbe angezeigt werden. Auf meinem Terminal ist es blau. Entfernen Sie diese Zeichen und alles wird auf Emacs wieder gut funktionieren.
Ursache:
Das Problem wurde durch einige seltsame Anführungszeichen verursacht, die aus Outlook stammten. Das Lustige ist, dass Emacs dieses Problem erst anzeigt, wenn Sie die Datei erneut öffnen, sodass Sie nur schwer erkennen können, dass Ihre Datei sofort ein Problem aufweist.
Ich weiß, dass diese Frage gelöst wurde, aber ich wollte erwähnen, dass Dos2Unix ein praktischer Bestandteil eines Toolkits für den Dateibetrieb zwischen UNIX / DOS / Mac-Computern ist. Es ist ein einfacher befehlsbasierter Ansatz zum Hinzufügen / Entfernen von vom Betriebssystem bevorzugten Zeilenenden.
Wenn Sie Emacs hauptsächlich in einer DOS / Windows-Umgebung verwenden, sollte Emacs das Zeilenende-System korrekt erkennen und transparent damit umgehen.
Möglicherweise wird ^ M plötzlich in einer Datei angezeigt, weil sie möglicherweise mit einem Skript bearbeitet wurde, das Zeilen mit UNIX-Zeilenenden hinzufügte, und jetzt werden Zeilenenden gemischt.
Sie können diese Zeilen korrigieren, indem Sie ^ M wieder hinzufügen, die Datei speichern, den Puffer beenden und erneut öffnen. Jetzt sollte es normal aussehen und (DOS) als Codierungsmarkierung in der Statuszeile sagen.
Der reguläre Ausdruck, nach dem gesucht werden muss, ist \ ([^^ M] \) $ und wird durch \ 1 ^ M ersetzt. Denken Sie daran, Strg-Q zu verwenden, um die Strg-M-Zeichen zu zitieren.
C-x RET f
gilt der Schlüsselakkord für das Set-Buffer-File-Coding-System, sodass Sie diesen stattdessen eingeben können. Ich erinnere mich jedoch nie daran.