Konwersja EOL w Notatniku ++


113

Z jakiegoś powodu, kiedy otwieram pliki z serwera uniksowego na moim komputerze z systemem Windows, czasami mają one konwersję Macintosh EOL, a kiedy je ponownie edytuję / zapisuję, nie działają poprawnie na serwerze unix. Używam tylko Notatnika ++ do edycji plików z tego serwera uniksowego, więc czy istnieje sposób na utworzenie makra, które automatycznie konwertuje EOL do formatu Unix za każdym razem, gdy otwieram plik?



1
Twój problem może dotyczyć dowolnego używanego programu FTP. Na przykład, używam WinSCP do zdalnego dostępu do serwera Unix, Notepad ++ jest ustawiony jako mój domyślny edytor, ale musiałem przejść do ustawień WinSCP i ustawić tryb transferu na Binary, aby zachować zakończenia linii. Możesz więc zmienić konfigurację programu FTP / SCP / etc, aby przesyłać pliki w inny sposób.
— Slicktrick

Odpowiedzi:


200

Ta funkcja jest już wbudowana w Notepad ++. Z menu „Edycja” wybierz „Konwersja EOL” -> „Format UNIX / OSX”.

zrzut ekranu z możliwością jeszcze szybszego wyszukiwania (lub różnych wersji językowych)

Możesz także ustawić domyślny EOL w notatniku ++ poprzez "Ustawienia" -> "Preferencje" -> "Nowy dokument / Katalog domyślny", a następnie wybierz "Unix / OSX" w polu Format.


7
Wiem o konwersji w menu edycji, a wspomniane ustawienia dotyczą tylko nowych dokumentów. Chcę automatycznie wykonać konwersję dla każdego otwieranego pliku (lub każdego pliku, który zapisuję)
— Jeff

Problem polega na tym, że kiedy otwieram istniejący plik Unix, „Konwersja EOL” -> Format UNIX / OSX jest wyszarzony. Notepad ++ jest frustrujący w użyciu z plikami UNIX, więc używam Notetab Lite, który pozwala mi zapisywać wszystkie pliki jako UNIX, a nie tylko nowe.
— Off The Gold

3
@OffTheGold Opcja UNIX EOL jest wyszarzona, ponieważ jest to bieżący wybór.
— blakeoft

Tak jest. Dziękujemy od listopada 2017 za pośrednictwem Google.
— SDsolar

To nie działa dla mnie. Ciągle wybieram „Konwersja EOL -> Unix”, ale to nic nie robi. Wracam do menu i widzę, że Windows jest wyszarzoną (a więc wybraną?) Opcją, więc ponownie klikam Unix. Próbowałem nawet zaznaczyć - najpierw cały mój tekst, na wypadek gdyby działał tylko przy zaznaczaniu, a następnie ponownie wybrałem Uniksa. Wciąż nic nie robi.
— Loduwijk

16

W Notepad ++ użyj zamień wszystko na wyrażenie regularne. Ma to przewagę nad poleceniem konwersji w menu, że możesz operować na całym folderze bez konieczności otwierania każdego pliku lub przeciągania i upuszczania (na kilkuset plikach będzie to zauważalnie wolniejsze), a ponadto możesz ustawić filtr wieloznaczny.

(\r?\n)|(\r\n?)

do

\n

To dopasuje każdy możliwy wzorzec końca linii (pojedynczy \ r, \ n lub \ r \ n) z powrotem do \ n. (Lub \ r \ n, jeśli konwertujesz na styl Windows)

Aby operować na wielu plikach:

  • Użyj opcji „Zamień wszystko we wszystkich otwartych dokumentach” w zakładce „Zamień”. Najpierw musisz przeciągnąć i upuścić wszystkie pliki do Notepad ++. Dobrze, że będziesz mieć kontrolę nad tym, na którym pliku będziesz operować, ale może być powolny, jeśli istnieje kilkaset lub tysiące plików.
  • „Zastąp w plikach” w zakładce „Znajdź w plikach” według wybranego filtru plików, np. * .Cpp * .cs w jednym określonym katalogu.

Może to spowodować utratę wartości EOL z powodu zastąpienia a \ r \ n \ r \ n pojedynczym \ n. Myślę.
— Sunspawn

Potwierdź, że działał w Notepad ++ 6.9.1. Będzie szukać do przodu, dlatego nie będzie rekursywnie zastępować tych, które są opóźnione.
— Wappenull,

W odpowiedzi na: "Może to spowodować utratę EOL z powodu zastąpienia \ r \ n \ r \ n pojedynczym \ n" >> Nie będzie, ponieważ używa | (lub) operator między 2 możliwymi grupami.
— Wappenull

3

Otwieram pliki „bezpośrednio” z WinSCP, który otwiera pliki w Notepad ++ Miałem pliki php na moim serwerze linux, które zawsze otwierały się w formacie Mac, bez względu na to, co zrobiłem :-(

Jeśli pobrałem plik, a następnie otworzyłem go z lokalnego (Windows), był on otwarty jako Dos / Windows .... hmmm

Rozwiązaniem było przekonwertowanie EOL pliku lokalnego do „formatu UNIX / OSX”, zapisanie go, a następnie załadowanie.

Teraz, kiedy otwieram plik bezpośrednio z serwera, jest on otwarty jako „Dos / Windows” :-)


1

W zależności od projektu możesz rozważyć użycie EditorConfig ( https://editorconfig.org/ ). Istnieje wtyczka Notepad ++, która załaduje plik .editorconfig, w którym możesz określić „lf” jako obowiązkowe zakończenie linii.

Dopiero zacząłem go używać, ale do tej pory jest fajny, a projekty open source, nad którymi pracowałem, zawierały pliki .editorconfig od lat. Ustawienie „Konwersja EOL” nie jest zmieniane, więc może być nieco mylące, ale jeśli wybierzesz „Widok> Pokaż symbol> Pokaż koniec wiersza”, zobaczysz, że dodaje LF zamiast CRLF, nawet jeśli „Konwersja EOL ”, a dolny dolny róg pokazuje coś innego (np. Windows (CR LF)).

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.