Frage gVim zeigt Wagenrücklauf (^ M), selbst wenn der Dateimodus explizit DOS ist


Ich verwende gVim unter Windows. Mein Code zeigt ^M Zeichen am Ende der Zeilen. ich benutzte :set ff=dos umsonst. Das ^M Zeichen bleiben für vorhandene Zeilen, aber erscheinen nicht für neue Zeilen, die ich betrete. Ich habe die Modi auf Mac umgestellt (Shows ^J Zeichen) und Unix (zeigt auch an ^M Zeichen) und zurück zu dos. Hat jemand anderes das gesehen?


75
2018-04-28 19:08


Ursprung


Antworten:


Dies geschieht, wenn Sie eine Mischung aus Windows-Zeilenenden und Unix-Zeilen haben. Wenn Sie 100 Zeilen haben, 99 sind \ r \ n und eins ist \ n, werden Sie 99 ^ M Zeichen sehen. Die Lösung besteht darin, diese eine Zeile zu finden und sie zu ersetzen. Oder führen Sie dos2unix in der Datei aus. Sie können die Windows-Zeilenenden durch ersetzen mit:

:%s/\r\(\n\)/\1/g


137
2018-04-28 19:12



Sie können auch ausführen:

:e ++ff=dos

Um das zu entfernen ^M: Sehen Dateiformat - Vim Tips Wiki.


40
2017-07-26 14:37



Ich verwende normalerweise Folgendes, um meine Zeilenenden zu bereinigen:

:g/^M$/s///

Um das ctrl-M zu bekommen, tippe ich normalerweise ctrl-Q, dann ctrl-M und setze es ein. (In einigen Umgebungen kann es ctrl-V sein, dann ctrl-M.) Ich weiß nicht warum, aber ich finde das eine leichter zu merken als rqist es.

Vergiss nicht zu tun :set ff=dos außerdem, oder Sie werden am Ende speichern mit UNIX-Zeilenenden noch.


19
2018-04-29 00:00



Ich weiß, dass dies bereits beantwortet wurde, aber ein Trick, den ich verwende, ist

:%s/\r/\r/g

Dies ersetzt den Unix-Wagenrücklauf mit dem Fenster CRLF. Nur hinzugefügt, falls jemand anderes Probleme hatte.


15
2018-05-28 19:22



Sie können diese Zeichen ignorieren!

lege das in deinen vimrc

Übereinstimmung Ignorieren / \ r $ /


6
2018-03-24 11:10



Wirklich was für mich funktionierte (auf 64-bit Windows, gVIM: 7.2) war:

:set ffs=dos

nicht nur: ff


4
2017-12-02 15:58



Ausführen von Vim 7.3 unter Windows 7. Ich habe den folgenden Befehl verwendet:

:%s/^M/\r/g

Um das ^ M zu erstellen, habe ich STRG + Q und dann STRG + M eingegeben.


4
2018-05-31 16:56



Dies ist wahrscheinlich ein wenig einfach für viele von euch, aber auf der anderen Seite ist es nützlich.

Basierend auf richqs Antwort fand ich diese in meinem vimrc nützlich. Beachten Sie, dass der zweite normalerweise auskommentiert ist, weil er dd etwas verwirrend macht, da Vim auf einen anderen Schlüsselstrich wartet, um herauszufinden, ob es der gemappte ex-Befehl ist.

Funktion! D2u ()
    Führe '% s / \ r \ (\ n \) / \ 1 / g' aus
Endfunktion
"map d2u:% s / \ r \ (\ n \) / \ 1 / g

Die erste wird durch Tippen ausgeführt call D2u() in ex und die zweite durch Drücken D2u im Bearbeitungsmodus.


2
2018-01-18 14:20



Dies sind zusätzliche CR-Zeilenenden, meist aufgrund einer Verwendung einer Datei auf gemischten UNIX / DOS-Systemen.

Möglich die kürzeste Antwort, um ein einzelnes ^ M vom Ende jeder Zeile zu entfernen, und was ich verwende, ist:

:%s/\r

was entspricht:

:%s/\r//

aber die Endstriche sind nicht erforderlich (sie werden angenommen).


2
2018-06-19 11:31



habe viele Dinge ausprobiert, aber folgendes funktionierte

:%s/\r/\r/g

Hinweis: Verwenden Sie G wenn du den Effekt auf die ganze Datei haben willst


0
2017-09-01 13:32