Jak mogę usunąć ^ M z mojego pliku w wysublimowanym tekście 3?

22

Kiedy robię git diff w mojej gałęzi, widzę, że zakończenia linii mają znaki ^ M:

^ M Zakończenia linii

Chcę je zastąpić zakończeniami linii uniksowej przed zatwierdzeniem zmian.

Używam Ubuntu 14.04, git i wysublimowanego tekstu 3.

Dzięki za pomoc.

EDYTOWAĆ:

Szukam sposobu na zmianę zakończenia linii w wysublimowanym tekście 3 bez użycia innych narzędzi lub poleceń.

Achraf JEDAY
źródło

Odpowiedzi:

15

Można to zrobić bez wtyczki za pomocą menu u góry lub paska stanu (ale musisz włączyć tę funkcję).

Aby to zmienić za pomocą menu u góry kliknij Widok -> Zakończenia linii -> Wybierz żądany typ zakończenia linii.

Aby włączyć to za pomocą paska stanu: Kliknij Preferencje -> Ustawienia, a następnie dodaj "show_line_endings": true,gdzieś między {}nawiasami po prawej stronie. Na koniec zapisz zmiany.

Umożliwia to małą sekcję po prawej stronie paska stanu, która pojawia się na dole. Informuje o bieżącym kodowaniu EOL. Kliknięcie pola i wybranie innego typu powoduje zmianę znaku EOL pliku.

Inną przydatną opcją jest kodowanie plików, które można również włączyć na pasku stanu, wykonując te same ustawienia powyżej, ale także dodając "show_encoding": true,między {}znakami.

KB
źródło
Działa to szczególnie podczas przesyłania plików z systemu Windows na serwer, ponieważ na serwerze trudniej jest edytować plik. Dzięki
Luis Cabrera Benito,
To powinna być teraz zaakceptowana odpowiedź
Luc
14

Możesz użyć dos2unixpolecenia w systemie Linux (pakiet dos2unix) lub zmienić zakończenia linii w Sublime Text w pozycji menu View / Line Endings .

Jan Čejka
źródło
8

^Mto \r(Control-M lub powrót karetki).

Jest to prawdopodobne, ponieważ użytkownik, który zatwierdził plik, korzystał z systemu Windows, który korzysta \r\nz końców linii. Linux używa tylko \n, dlatego widzisz ^Mna końcu linii.

Prawdopodobnie chcesz wykonać jedną z następujących czynności:

  • „Napraw” plik, aby miał \nzakończenia linii (za pomocą narzędzia takiego jak dos2unix) i zatwierdził. W takim przypadku będziesz walczył z drugim użytkownikiem, chyba że możesz go skłonić do wykonania poniższych czynności.
  • Skonfiguruj obie swoje instalacje git, aby poprawnie obsługiwały zakończenia linii dla każdego środowiska - np .: /programming/10418975/how-to-change-line-ending-settings
  • Skonfiguruj Sublime, aby otworzyć plik z „ zakończeniami linii systemu Windows
Attie
źródło
4

Do kogo może nie chcieć instalować dodatkowej wtyczki w celu usunięcia ^ M nowych linii,

  1. W ustawieniu wzniosłego tekstu dodaj "trim_trailing_white_space_on_save": true,do automatycznego usuwania miejsca podczas zapisywania. (Ten krok może być opcjonalny)

  2. W otwieranym pliku kliknij prawy dolny róg wysublimowanego tekstu. Zmiana Windowsdo Unixi Zapisz.

  1. ^ M już nie ma. Cieszyć się.
harrrrrrry
źródło
3

Znalazłem wysublimowaną wtyczkę tekstową, która konwertuje zakończenia linii we wszystkich otwartych plikach na Unix / Windows / Mac OS 9.

Instalacja

  1. Otwórz Sublime i wybierz Preferencje> Przeglądaj pakiety. Otworzy się okno.
  2. Pobierz lub sklonuj zawartość tego repozytorium do folderu o nazwie dokładnie takiej samej jak nazwa pakietu w folderze Pakiety / otwartym w poprzednim kroku:

/home/YOUR_USERNAME/.config/sublime-text-3/Packages

Stosowanie

  1. Wróć do wzniosłości i otwórz wszystkie pliki, które chcesz przekonwertować.
  2. Po otwarciu wszystkich plików naciśnij CTRL + SHIFT + P, a następnie wyszukaj i wybierz „Line Ending to all view: Unix”.
  3. Naciśnij CTRL + ALT + S, aby zapisać wszystkie otwarte pliki.
Achraf JEDAY
źródło
Repozytorium zostało usunięte?
AnnanFay