Wenn ich Quelldateien mit vim und anderen Editoren bearbeite, werden manchmal am Ende der Zeile diese ^ M-Zeichen am Ende jeder Zeile angezeigt. Ich denke, dass es etwas mit dem Bearbeiten einer Datei in Windows und dann unter Linux zu tun hat. Wie kann ich all diese automatisch entfernen?
132
^M
s anzuzeigen. Der einzige Hinweis, den Sie beim Bearbeiten einer DOS-Textdatei in Vim haben, ist, wenn Sie%{&ff}
Ihrenstatusline
Optionswert angegeben haben. Vim zeigt an,^M
wann der Zeilenendstil gemischt wird . Dies bedeutet, dass Sie einen Texteditor verwendet haben, der nicht so versiert ist wie Vim, der nicht dem vorhandenen Zeilenendstil folgt, wie dies Vim standardmäßig tut. Wenn Sie Vim oder etwas anderes seines Kalibers unter Windows verwenden, werden Sie keine solchen zerstörten Zeilenenden erhalten.Antworten:
Geben Sie als Befehl Folgendes ein
(Um ^ M zu erhalten, drücken Sie ^ V ^ M, wobei ^ auf den meisten Tastaturen STRG ist.)
quelle
:%s/\r$
Eine einfache Möglichkeit, die DOS-Zeilenenden zu entfernen, ist die Verwendung der folgenden
ff
Option:Jetzt ist Ihre Datei wieder auf dem guten alten Unix-Weg.
Wenn Sie die DOS-Zeilenenden hinzufügen möchten (um einen Drucker zufrieden zu stellen oder Dateien mit Windows-Freunden zu übertragen, die keine netten Tools haben), können Sie ganz einfach in die entgegengesetzte Richtung gehen:
quelle
git diff
Shows jede Zeile gelöscht und jede Zeile hinzugefügt: /diff
, nicht einegit
.Du kannst das:
Die
^M
's werden ausgeblendet, ohne die Datei zu berühren.quelle
Es gibt ein Programm namens dos2unix , das diese für Sie entfernen sollte. Windows verwendet verschiedene Zeilenendezeichen, weshalb dies geschieht.
quelle
Dies funktionierte für mich in einer Datei, in der alles in einer Zeile stand:
Finde zuerst alle Übereinstimmungen
(Um zu erhalten
^M
, drücken Sie ^ V ^ M, wobei ^ Ctrlauf den meisten Tastaturen steht.)Dann durch Zeilenumbrüche ersetzen
Kombinierter Befehl wäre:
quelle
Ich neige dazu, betroffene Dateien durchzugehen,
fromdos
bevor ich sie wieder öffne .fromdos
ist Teil des Tofrodos- Pakets.quelle
Der Grund für das Problem könnte eine FTP-Übertragung gewesen sein. Wenn Sie diese Dateien von einer Box zur anderen per FTP übertragen, stellen Sie sicher, dass Sie ASCII-Übertragungen verwenden. Verwenden Sie den Befehl "ASC".
quelle
quelle
mcedit: Shift + f2, Unix-Format (LF) einstellen, ok
quelle