2010-06-15 7 views

Antwort

11

ich die folgende Funktion verwenden (vergessen, wo ich es gefunden):

(defun hide-ctrl-M() 
    "Hides the disturbing '^M' showing up in files containing mixed UNIX and DOS line endings." 
    (interactive) 
    (setq buffer-display-table (make-display-table)) 
    (aset buffer-display-table ?\^M [])) 
+0

Es ist möglich, diesen Code zu verwenden, aber ich würde empfehlen, die in Emacs integrierten Funktionen zu verwenden, um [Textcodierung] richtig zu handhaben (http://stackoverflow.com/a/14009245/462302). – aculich

0

Mindestens mit Emacs 22.3 dies scheint nur ein Problem, wenn die Datei eine Kombination von Newline Stilen hat, sagt von der Bearbeitung mit einem „nicht-aufgeklärten“ Editor unter beide Windows UNIX.

Wenn die Zeilen konsistent terminiert sind, werden moderne Emacs am unteren Rand feststellen, dass es sich um den [dos] -Modus handelt und nicht das^M. Es ist dann schlau genug,^M in die Datei zu legen, wenn Sie speichern.

Wenn Sie etwas seltsame Kombination haben können Sie versuchen,

$ unix2dos FILE 

zu einem guten Zustand zu erhalten laufen, nach dem hoffentlich Sie es im DOS-Modus halten.

Ich stelle fest, dass meine Xemacs 21.4 leider nicht über diese Funktion verfügt.

Es gibt eine Diskussion hier: http://groups.google.com/group/gnu.emacs.help/browse_thread/thread/676113e90825d4e7

+2

unix2dos ändert die Datei, was nicht das ist, was das OP will –

+0

richtig aber ... der Vorschlag, unix2dos zu betrachten, wurde als eine Möglichkeit angeboten, das Problem zu beheben, wo eine Datei gemischte Zeilenumbrüche enthält. Mit anderen Worten, die hier gegebene Antwort gilt für eine Frage, die der OP * möglicherweise nicht gestellt hat *. – Cheeso

4

Die GNU Emacs documentation beschreibt, wie Text zu handhaben Codierung mit revert-buffer-with-coding-system:

C-x <RET> r coding <RET> 
Revisit the current file using the coding system coding (revert-buffer-with-coding-system). 

Wenn in Ihrem Fall die korrekte Systemcodierung nicht automatisch erkannt wird, können Sie Folgendes eingeben:

C-x R RET RET dos

zu vermeiden, dass die ^M Zeichen anzeigt, ohne die Datei tatsächlich zu modifizieren.

Verwandte Themen