Kiedy edytuję pliki źródłowe przy użyciu vima i innych edytorów, czasami na końcu linii pojawiają się znaki ^ M na końcu każdej linii. Myślę, że ma to coś wspólnego z edycją pliku w oknach, a potem w Linuksie. Jak mogę usunąć je wszystkie automatycznie?
133
^M
. Jedynym wskazaniem masz podczas edycji pliku tekstowego DOS w vim jest, jeśli masz%{&ff}
w swojejstatusline
wartości opcji. Vim pokazuje,^M
kiedy styl zakończenia linii jest mieszany . Oznacza to, że użyłeś edytora tekstu, który nie jest tak sprytny jak Vim, który nie podążał za istniejącym stylem zakończenia linii, jak Vim domyślnie. Jeśli używasz Vima lub czegoś innego tego kalibru w systemie Windows, nie dostaniesz takich zepsutych zakończeń linii.Odpowiedzi:
Jako polecenie wpisz
(Aby uzyskać ^ M, naciśnij ^ V ^ M, gdzie ^ to CTRL na większości klawiatur)
źródło
:%s/\r$
Prostym sposobem na usunięcie końcówek linii DOS jest użycie
ff
opcji:Teraz twój plik jest z powrotem na dobry, stary Unix sposób.
Jeśli chcesz dodać zakończenia linii DOS (aby drukarka była zadowolona lub przesyłała pliki ze znajomymi z systemu Windows, którzy nie mają dobrych narzędzi), możesz łatwo pójść w przeciwnym kierunku:
źródło
git diff
pokazuje, że każda linia została usunięta i każda dodana: /diff
, nie włączonegit
.Możesz to zrobić:
Ukryje
^M
pliki bez dotykania pliku.źródło
Jest program o nazwie dos2unix, który powinien je usunąć. Windows używa różnych znaków końca linii, dlatego tak się dzieje.
źródło
To zadziałało dla mnie w pliku, który miał wszystko w jednej linii:
Najpierw znajdź wszystkie dopasowania
(Aby uzyskać
^M
, naciśnij ^ V ^ M, gdzie ^ jest Ctrlna większości klawiatur)Następnie zamień na nowe linie
Połączone polecenie to:
źródło
Zwykle przeglądam pliki z problemami
fromdos
przed ich ponownym otwarciem.fromdos
jest częścią pakietu tofrodos .źródło
Przyczyną problemu mógł być transfer FTP. Kiedy przesyłasz te pliki z jednej skrzynki do drugiej, upewnij się, że używasz transferów ASCII. Użyj polecenia „ASC”.
źródło
źródło
mcedit: shift + f2, ustaw format unix (LF), ok
źródło