624 Stimmen

Was bedeutet das Zeichen ^M in Vim?

Ich bekomme ständig ^M Zeichen in meiner vimrc und das macht meine Konfiguration kaputt.

672voto

Tomasz Stanczak Punkte 12426

Unix verwendet 0xA für ein Zeilenumbruchszeichen. Windows verwendet eine Kombination aus zwei Zeichen: 0xD 0xA. 0xD ist das Wagenrücklaufzeichen. ^M ist zufällig die Art, wie vim 0xD anzeigt (0x0D = 13, M ist der 13. Buchstabe im englischen Alphabet).

Sie können alle ^M Zeichen, indem Sie Folgendes ausführen:

:%s/^M//g

Wo ^M wird durch Gedrückthalten von Ctrl und tippt v gefolgt von m und dann loslassen Ctrl . Dies wird manchmal abgekürzt als ^V^M Beachten Sie jedoch, dass Sie ihn wie im vorherigen Satz beschrieben eingeben müssen und ihn nicht wörtlich abtippen dürfen.

Dieser Ausdruck ersetzt alle Vorkommen von ^M mit der leeren Zeichenkette (d. h. nichts). Ich verwende dies, um Folgendes loszuwerden ^M in Dateien, die von Windows auf Unix (Solaris, Linux, OSX) kopiert werden.

170voto

dlk5730 Punkte 1649
:%s/\r//g 

hat heute bei mir funktioniert. Aber meine Situation könnte etwas anders gewesen sein.

73voto

Mori Punkte 26145

Um die neue Zeile zu übersetzen, anstatt sie zu entfernen:

:%s/\r/\r/g

40voto

cnicutar Punkte 173420

Es bedeutet wahrscheinlich, dass Sie Wagenrücklaufzeichen haben (verschiedene Betriebssysteme verwenden unterschiedliche Methoden, um das Ende einer Zeile zu signalisieren).

Utilice dos2unix um die Dateien zu korrigieren oder die Dateiformate in vim einzustellen:

set ffs=unix,dos

24voto

akrita Punkte 383

Nehmen wir an, Ihre Textdatei ist - file.txt, dann führen Sie diesen Befehl aus -

dos2unix file.txt 

Es konvertiert die Textdatei vom Dos- ins Unix-Format.

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