Notatnik ignoruje podział linii [duplikat]

36

Większość dokumentów, które otwieram ostatnio w notatniku.exe w systemie Windows 7, nie ma podziałów liniowych ... wszystko po prostu działa razem. Te same dokumenty w każdym innym programie, nawet podglądane bezpośrednio w Eksploratorze, prawidłowo pokażą podział wierszy. dzieje się tak w przypadku wielu plików .info, .css, .js ... ale nie wszystkich.

Domyślam się, że to coś w rodzaju zakończenia linii uniksowej, ale zastanawiam się, czy mogę coś zrobić lub czy ktoś inny doświadczył czegoś podobnego i czy mogę sprawić, by notatnik działał poprawnie. Wolę go od notatnika ++ / innych edytorów tekstu do niektórych zastosowań.

Damon
źródło
Zobacz stackoverflow.com/a/50241693/6309 : Notatnik obsługuje teraz \ n (Windows 10, Q2 2018)
VonC

Odpowiedzi:

45

Istnieją podziały linii, jednak różne systemy operacyjne rozpoznają różne sekwencje podziałów linii.

Notatnik rozpoznaje tylko CR, LF (0x0d, 0x0a), podczas gdy inne źródła mogą używać tylko CR lub tylko LF.

Nie możesz sprawić, by Notatnik zachowywał się inaczej, więc jedyną opcją jest upewnienie się, że zawartość ma odpowiednią sekwencję dla Notatnika. Pamiętaj, że Notatnik jest jedynym edytorem z tym ograniczeniem, więc jeśli treść działa w Notatniku, będzie działać wszędzie indziej.

Jednym prostym sposobem naprawienia wysuwanych wierszy jest skopiowanie i wklejenie tekstu do Worda, a następnie powrót do notatnika, a wysuwane wiersze zostaną „poprawione” do sekwencji CR, LF.

Paweł
źródło
36
Aha! brzmi trochę tak, jakby porzucenie notatnika mogło być znacznie łatwiejsze; P
Damon
1
Absolutnie (wypełnienie).
Paul
3
Myślę, że to naprawdę zaskakujące, że to ograniczenie do dwudziestu lat nigdy nie zostało naprawione ...
Haroldo_OK,
1
otwórz słowem, zapisz, a następnie otwórz notatnikiem ... nie trzeba kopiować-wkleić
Gavin Palmer
2
Dobra wiadomość, technologia w końcu nadchodzi .
mkobit,
9

Wordpad

Jeśli Twoja awersja do notatnika ++ i innych edytorów tekstu jest taka, że ​​nie są one standardową częścią wszystkich systemów Windows, użyj Wordpada. Nie jest tak podstawowy jak Notatnik.

Wordpad poprawnie odczytuje i wyświetla pliki tekstowe z zakończeniami linii uniksowej.

Inny

Jeśli nie zgadzasz się z oboma edytorami tekstu, to notatnik ++ jest prawdopodobnie dobrym wyborem.

RedGrittyBrick
źródło
mój problem z / notepad ++ do naprawdę szybkiego przeglądania / edycji polega na tym, że utrzymuje wiele dokumentów otwartych, chyba że je konkretnie zamknę; po prostu nie pasuje do tego zastosowania. Mogę po prostu ponownie skojarzyć pliki tekstowe z worpadem i upewnić się, że są w moim open with...menu.
Damon
2
Dla każdego, kto przeczyta ten rok później, możesz wyłączyć tę funkcję w preferencjach, jest to coś w rodzaju „Zapamiętaj bieżącą sesję do następnego uruchomienia”
Uberfuzzy
2
@Damon Nienawidziłem tego zachowania, ale możesz je wyłączyć. Musisz tylko skonfigurować Notepad ++, aby nie otwierał starych sesji. Przejdź do Ustawienia -> Preferencje -> Kopia zapasowa. Odznacz „Zapamiętaj bieżącą sesję do następnego uruchomienia”.
Bekon Bity,
Powiedziałbym, że problem polega nie tyle na tym, że edytor tekstu musi być przeniesiony na system Windows, co na tym, że Windows ma zapewnić co najmniej jeden przyzwoity edytor tekstu. Nie liczyłbym ani MS Word, ani WordPad jako „edytorów tekstu”, ponieważ celem tych narzędzi jest raczej generowanie raportów niż edycja tekstu. Tekst niekoniecznie musi pochodzić ze stron lub musi mieścić się na stronach. Jeszcze w 2018 r. I systemie Windows 10 nie znalazłem tego.
patrik
5

Możesz napisać prosty skrypt wsadowy:

@ECHO OFF
TYPE %1 | FIND /V "" >%1.1
MOVE %1.1 %1 > NUL 2>&1
START "NOTEPAD" C:\WINDOWS\SYSTEM32\NOTEPAD.EXE %1
EXIT /B

Zapisz to jak notepad.batw dowolnym katalogu. Następnie zamiast otwierać pliki .info/ .css/ .jsza pomocą Notatnika, otwórz je za pomocą tego skryptu wsadowego. Automatycznie skonwertuje wszystkie zakończenia linii Uniksa na DOS, a następnie otworzy plik za pomocą Notatnika.

Wady:

  • Za każdym razem, gdy otwierasz program, dodaje on nową linię na końcu pliku. (Naprawiony przez @mpag )
  • Otwiera okno wiersza polecenia (Naprawiono za pomocą STARTlinii 4)
  • Zmienia datę utworzenia pliku na bieżącą
MD XF
źródło
kolejna rekomendacja. zamień startwiersz START "NOTEPAD" "%SystemRoot%\System32\NOTEPAD.EXE" %1na uogólnienie dla tych szaleństw, które mają D jako dysk główny lub WinNT dla katalogu Windows.
mpag
@mpag Pewnie, ale nie czuję potrzeby edytowania tego w mojej odpowiedzi. Każdy, kto będzie wystarczająco wacko, aby jego katalog główny nie był, nie C:otrzyma ode mnie wsparcia. C:jest standardem od czasu wydania DOS w 1981 r.
MD XF
1
w celu zachowania znaczników czasu:mkdir %1.dir TYPE %1 | FIND /V "" >%1.dir\%1 robocopy . %1.dir %1 /copy:t >NUL 2>&1 move %1.dir\%1 . > NUL 2>&1 rmdir %1.dir
mpag
Lub możesz po prostu użyć tego wcześniej istniejącego narzędzia.
mbomb007
4

Ponieważ Notepad ++ został wspomniany konkretnie w PO, ma (przynajmniej teraz) niezbędne ustawienia w:

Edycja -> Konwersja EOL -> Format Windows.

Huendli
źródło
Wersja Notepad ++ 7.5.9, opcje mają nazwę „Windows (CR LF)” w Konwersji EOL.
André M. Faria,
3

Musisz zmienić typ kodowania podziału linii zastosowanego w pliku.

W systemie Linux istnieje program o nazwie „unix2dos”, który może to zrobić za Ciebie. Nie jestem pewien, czy Windows jest wyposażony w taki program, ale wydaje się, że podobny jest dostępny tutaj: http://www.thefreecountry.com/tofrodos/

Więcej informacji na temat tego procesu można znaleźć w Wikipedii: http://en.wikipedia.org/wiki/Unix2dos, gdzie można znaleźć przykłady różnych programów wiersza poleceń, które mogą dokonać zmiany.

rgocs
źródło
jeśli masz Sublime, możesz wybrać, View->Line endings -> Windowsa następnie zapisać plik, aby go zastąpić. W takim przypadku zakończenia linii unixowych zamieniają się w format Windows. Jeśli otworzysz ten zapisany plik w Notatniku, będzie on poprawnie wyświetlał zakończenia linii.
Junior M
1

Kolejna rzecz, którą możesz zrobić: otwórz plik w WordPadzie, a następnie zapisz go. Poprawi to zakończenia linii. To najszybsza metoda.

MD XF
źródło
1

Masz rację, że jest to problem z zakończeniami linii uniksowej. Istnieje kilka różnych zakończeń linii , ale najpopularniejsze są trzy odmiany:

  • „U + 000A LINE FEED” (LF): Unix, Linux, macOS itp
  • „U + 000D CARRIAGE RETURN” (CR): między innymi klasyczny macOS
  • „U + 000D CARRIAGE RETURN”, a następnie „U + 000A LINE FEED” (CRLF): Windows i inne systemy operacyjne inne niż Unix / IBM

Starsze wersje Notatnika rozpoznają tylko CRLF, ale nowsze wersje obsługują CRLF, CR i LF .

Nie ma ustawienia, aby zmienić to zachowanie w starszych wersjach Notatnika, ale możesz przywrócić stare zachowanie w nowej wersji . Większość innych programów głównego nurtu od dłuższego czasu działa ze wszystkimi trzema zakończeniami linii, więc jeśli treść działa w starszych wersjach Notatnika, powinna działać prawie wszędzie.

0b10011
źródło