624 Stimmen

Was bedeutet das Zeichen ^M in Vim?

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

20voto

Freedom_Ben Punkte 10232

Ich habe sie alle mit sed entfernt:

sed -i -e 's/\r//g' <filename>

Kann auch durch eine andere Zeichenfolge oder ein anderes Zeichen ersetzt werden. Wenn es zum Beispiel noch keine Zeilenumbrüche gibt, können Sie \r in \n :

sed -i -e 's/\r/\n/g' <filename>

Diese sed Befehle funktionieren unter der GNU/Linux-Version von sed kann aber auf BSDs (einschließlich macOS) angepasst werden müssen.

9voto

Anthony Palmer Punkte 914

Ich habe eine Textdatei, die ursprünglich auf einer Windows-Maschine von einem Mac-Benutzer erstellt wurde, und musste sie in eine Linux-MySQL-DB importieren, indem ich die load data Befehl.

Obwohl VIM das Zeichen "^M" anzeigte, funktionierte keine der oben genannten Maßnahmen bei meinem speziellen Problem. Die Lösung war am Ende ziemlich einfach (nach viel Frustration).

Lösung: Ausführen von dos2unix ZWEIMAL auf dieselbe Datei hat den Trick gemacht! Die Verwendung der file zeigt an, was auf dem Weg dorthin passiert.

$ file 'file.txt'
file.txt: ASCII text, with CRLF, CR line terminators

$ dos2unix 'file.txt'
dos2unix: converting file file.txt to UNIX format ...
$ file 'file.txt'
file.txt: ASCII text, with CRLF line terminators

$ dos2unix 'file.txt'
dos2unix: converting file file.txt to UNIX format ...
$ file 'file.txt'
file.txt: ASCII text

Und die endgültige Version der Datei wurde perfekt in die Datenbank importiert.

8voto

Irving Rabin Punkte 89

Unter Unix ist es wahrscheinlich einfacher, den Befehl 'tr' zu verwenden.

cat file1.txt | tr "\r" "\n" > file2.txt

6voto

Sardeep Lakhera Punkte 379

Das ist das einzige, was in meinem Fall funktioniert hat:

:e ++ff=dos

:wq

4voto

Scott C Wilson Punkte 17730

Sie können dies in vim beheben, indem Sie

:1,$s/^V^M//g

wobei ^ das Steuerzeichen ist.

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