522 Stimmen

Wie konvertiert man den ^M-Zeilenumbruch in einer in vim geöffneten Datei in einen 'normalen' Zeilenumbruch?

Vim zeigt in jeder Zeile mit der Endung ^M

Wie kann ich diesen durch einen "normalen" Zeilenumbruch ersetzen?

616voto

Befehl

:%s/<Ctrl-V><Ctrl-M>/\r/g

Donde <Ctrl-V><Ctrl-M> bedeutet Typ Ctrl + V dann Ctrl + M .

Erläuterung

:%s

Ersatz, % = alle Zeilen

<Ctrl-V><Ctrl-M>

^M-Zeichen (das Strg-V ist eine Vim-Art, das Strg-^-Zeichen zu schreiben, und Strg-M schreibt das M nach dem regulären Ausdruck, was zu dem Sonderzeichen ^M führt)

/\r/

mit neuer Zeile ( \r )

g

Und zwar global (nicht nur beim ersten Vorkommen in der Zeile).

427voto

Paul Tomblin Punkte 172816

Unter Linux und Mac OS funktioniert das wie folgt,

:%s/^V^M/^V^M/g

wobei ^V^M bedeutet Typ Ctrl + V entonces Ctrl + M .

Hinweis: Unter Windows sollten Sie wahrscheinlich die Option <code>^Q</code> 代わりに <code>^V</code> , da standardmäßig <code>^V</code> wird auf Text einfügen abgebildet.

194voto

Jonathan Leffler Punkte 694013

Sur vim Schauen Sie sich das Dateiformat an - DOS oder Unix:

:set filetype=unix

:set fileformat=unix

Die Datei wird ohne Wagenrücklaufzeichen (CR, ^M) zurückgeschrieben.

156voto

Pam Punkte 3980

Das ist das einzige, was bei mir funktioniert hat:

:e ++ff=dos

Gefunden bei: http://vim.wikia.com/wiki/File_format

125voto

netpoetica Punkte 3235

Eine Datei, die ich mit BBEdit erstellt hatte, zu sehen in MacVim zeigte einen Haufen von ^M Zeilenumbrüche anstelle von normalen Zeilenumbrüchen. Der folgende String Replace hat das Problem gelöst - ich hoffe, das hilft:

:%s/\r/\r/g

Es ist interessant, weil ich die Zeilenumbrüche durch dasselbe Zeichen ersetze, aber ich nehme an, dass Vim einfach eine neue \r korrekt anzuzeigen. Mich würde interessieren, warum das so funktioniert.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X