Frage

I gVim unter Windows bin mit. Mein Code zeigt am Ende der Linien ^M Zeichen. Früher habe ich :set ff=dos ohne Erfolg. Die ^M Zeichen bleiben für bestehende Linien, aber nicht zeigen, für Zeilenumbrüche bis ich ein. Ich Modi mac gewechselt haben (zeigt ^J Zeichen) und Unix (zeigt auch ^M Zeichen) und zurück zu DOS. Hat jemand gesehen?

War es hilfreich?

Lösung

Dies geschieht, wenn Sie eine Mischung aus Windows-Zeilenenden und Unix diejenigen haben. Wenn Sie 100 Zeilen haben, 99 sind \ r \ n und man ist \ n, werden Sie 99 ^ M Zeichen sehen. Die Lösung ist, dass eine Zeile zu finden und zu ersetzen. Oder laufen dos2unix auf die Datei. Sie können die Windows-Zeilenende ersetzen mit:

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

Andere Tipps

Sie können auch ausgeführt werden:

:e ++ff=dos

die ^M entfernen. Siehe Dateiformat - Vim Tipps Wiki

Normalerweise verwende ich die folgenden Bereinigungs meiner Zeilenende:

:g/^M$/s///

Um die Strg-M erhalte ich ctrl-Q in der Regel geben, dann ctrl-M und bringt es auf. (In manchen Umgebungen kann es ctrl-V dann ctrl-M sein.) Ich weiß nicht, warum, aber ich finde, dass man leichter merken als rq 's.

Vergessen Sie nicht :set ff=dos auch zu tun, oder Sie werden nach wie vor mit UNIX-Zeilenenden am Ende sparen.

Ich weiß, dass dies bereits beantwortet worden, aber ein Trick, den ich verwenden ist

:%s/\r/\r/g

Dies ersetzt die Unix-Zeilenumbrüche mit dem Windows CRLF. Gerade hinzugefügt, falls jemand Probleme hatte.

Sie können diese Zeichen ignorieren!

setzen Sie diese in Ihre vimrc

  

Spiel Ignorieren / \ r $ /

Eigentlich was für mich gearbeitet (auf 64-Bit-Windows, gVim: 7,2):

:set ffs=dos

nicht nur: ff

Ausführen von Vim 7.3 auf Windows 7 habe ich den folgenden Befehl ein:

:%s/^M/\r/g

Um den ^ M zu erstellen tippte ich in CTRL + Q dann STRG + M.

Dies ist wahrscheinlich ein bisschen einfacher für viele von Ihnen, aber für den unwahrscheinlichen Fall ist es sinnvoll.

Basierend auf richq Antwort, fand ich diese in meinem vimrc nützlich zu sein. Beachten Sie, die zweite ist auf Kommentar normalerweise, weil es dd etwas verwirrend macht da Vim für einen weiteren Tastendruck warten zu arbeiten, wenn es die abgebildete Ex-Befehl ist.

function! D2u()
    execute '%s/\r\(\n\)/\1/g'
endfunction
"map d2u :%s/\r\(\n\)/\1/g

Die erste wird durch die Eingabe eines call D2u() in ex und die zweiten durch Drücken D2u im Bearbeitungsmodus ausgeführt werden.

Dies sind zusätzliche CR Zeilenende in der Regel wegen eines einer Datei auf gemischt UNIX / DOS-Systemen verwendet wird.

möglich, die kürzeste Antwort einen einzigen ^ M vom Ende jeder Zeile zu entfernen, und was ich benutze, ist:

:%s/\r

das ist äquivalent zu:

:%s/\r//

aber das Ende Schrägstriche sind nicht erforderlich (sie sind angenommen).

versuchte, eine Menge Dinge, aber die folgenden gearbeitete

:%s/\r/\r/g

Hinweis: Verwenden Sie g , wenn Sie die Auswirkungen auf die gesamte Datei wollen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top