Ігнорування блокнотів блокнота [дублікат]


36

На це питання вже є відповідь тут:

Більшість документів, які я відкриваю в notepad.exe під Windows 7 останнім часом, немає рядків ... все просто працює разом. Ті ж документи в будь-якій іншій програмі, навіть попередньо переглянуті безпосередньо в Провіднику, будуть правильно відображати рядки. це відбувається з багатьма файлами .info, .css, .js .., але не з усіма ними.

Я здогадуюсь, що це якийсь тип кодування символів, який закінчує Unix чимось чи іншим, але цікаво, чи є щось, що я можу зробити, чи хтось інший пережив подібне, і чи можу я зробити так, щоб блокнот працював правильно. Я вважаю за краще це для блокнотів ++ / інших текстових редакторів для певного використання.


Дивіться stackoverflow.com/a/50241693/6309 : Блокнот підтримує \ n зараз (Windows 10, Q2 2018)
VonC

Відповіді:


45

Існують розриви рядків, однак різні операційні системи розпізнають різні послідовності розривів рядків.

Блокнот розпізнає лише CR, LF (0x0d, 0x0a), тоді як інші джерела можуть використовувати лише CR або LF.

Ви не можете змусити Блокнот вести себе по-різному, тому ваш єдиний варіант - переконатися, що вміст має правильну послідовність для Блокнота. Зауважте, що блокнот - єдиний редактор з цим обмеженням, тому якщо ваш вміст працює в Блокноті, він буде працювати всюди.

Один з простих способів виправити канали рядків - скопіювати та вставити текст у Word, потім знову повернутися в блокнот, і канали рядків будуть "виправлені" до послідовності CR, LF.


36
ага! звучить дещо, як кинути блокнот може бути набагато простіше; P
Деймон

1
Абсолютно (підкладка).
Пол

3
Я думаю, що насправді бентежить, що це двадцятирічне обмеження ніколи не було встановлено ...
Haroldo_OK

1
відкрити словом, зберегти, потім відкрити в блокноті ... копіювати пасту не потрібно
Гавін Палмер

2
Хороша новина, технології нарешті надходять .
mkobit

9

Wordpad

Якщо ваша неприязнь до блокнота ++ та інших текстових редакторів полягає в тому, що вони не є стандартною частиною всіх систем Windows, використовуйте Wordpad. Це не так рудиментарно, як Блокнот.

Wordpad буде правильно читати та відображати текстові файли із закінченнями рядків Unix.

Інший

Якщо ви проти обох справжніх текстових редакторів, тоді блокнот ++ - це, мабуть, хороший вибір.


моя проблема з блокнотом ++ для дійсно швидкого перегляду / редагування - це фактично те, що він зберігає кілька документів відкритими, якщо я спеціально їх не закриваю; просто не відчуває себе правильним для цього використання. Я можу просто зв'язати файли текстових типів з робочим блоком і переконатися, що вони знаходяться в моєму open with...меню.
Деймон

2
Для всіх, хто читає це роки пізніше, ви можете вимкнути цю функціональність у налаштуваннях, її щось на кшталт "Запам’ятати поточну сесію для наступного запуску"
Uberfuzzy

2
@Damon Я також ненавиджу цю поведінку, але ви можете її відключити. Вам просто потрібно налаштувати Notepad ++, щоб не відкривати старі сеанси. Перейдіть у Налаштування -> Налаштування -> Резервне копіювання. Зніміть прапорець "Запам'ятати поточний сеанс для наступного запуску".
Беконові шматочки

Можна сказати, що проблема полягає не стільки в тому, щоб бажати, щоб текстовий редактор передавався з Windows, а настільки, як у бажанні Windows забезпечити принаймні одним гідним текстовим редактором. Я б не вважав MS Word чи WordPad "текстовими редакторами", оскільки мета цих інструментів скоріше - генерування звітів, ніж редагування тексту. Текст не надходить обов'язково зі сторінками або повинен вміщуватися на сторінках. Ще в 2018 році та Windows 10 я нічого такого не знайшов.
патрик

5

Ви можете написати простий пакетний сценарій:

@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

Збережіть це як notepad.batу будь-якому каталозі, який вам подобається. Потім замість того, щоб відкривати .info/ .css/ .jsфайли за допомогою Блокнота, відкрийте їх за допомогою цього пакетного сценарію. Він автоматично перетворить усі закінчення рядків Unix в DOS, а потім відкриє файл із блокнотом.

Недоліки:

  • Щоразу, коли ви відкриваєте програму, вона додає новий рядок до кінця файлу. (Виправлено @mpag )
  • Відкриває вікно командного рядка (виправлено за допомогою STARTрядка 4)
  • Змінює дату створення файлу на поточну дату


ще одна рекомендація. замініть startрядок на, START "NOTEPAD" "%SystemRoot%\System32\NOTEPAD.EXE" %1щоб узагальнити для тих мандрівників, у яких D є своїм кореневим диском, або WinNT для каталогу Windows.
mpag

@mpag Звичайно, хіба що я не відчуваю потреби редагувати це у своїй відповіді. Хто-небудь досить вакко, що їх кореневий каталог не C:отримає від мене ніякої підтримки. C:є стандартом з часу виходу DOS в 1981 році.
MD XF

1
щоб зберегти часові позначки: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

Або ви могли просто скористатися цією попередньою утилітою.
mbomb007

4

Оскільки Notepad ++ згадувалося конкретно в ОП, він (принаймні зараз) має налаштування, необхідні в:

Редагувати -> Перетворення EOL -> Формат Windows.


Версія для блокнота ++ 7.5.9, параметр має назву "Windows (CR LF)" у розділі EOL Conversion.
Андре М. Фарія

3

Потрібно змінити тип кодування розриву рядків, який використовується у файлі.

У Linux існує програма під назвою "unix2dos", яка може це зробити для вас. Я не впевнений, що Windows постачається з такою програмою, але, схоже, є подібна тут: http://www.thefreecountry.com/tofrodos/

Більше інформації щодо цього процесу у Вікіпедії: http://en.wikipedia.org/wiki/Unix2dos, де ви можете отримати приклади різних програм командного рядка, які можуть змінити.


якщо у вас встановлено Sublime, ви можете вибрати View->Line endings -> Windowsта зберегти файл, щоб перезаписати його. У цьому випадку закінчення рядків Unix перетворяться у формат Windows. Якщо ви відкриєте цей збережений файл у Блокноті, він буде правильно відображати закінчення рядків.
Молодший М

1

Ще одне, що можна зробити: Відкрийте файл у WordPad та збережіть його. Це виправить закінчення рядків. Це найшвидший метод.


1

Ви правильні, що це проблема із закінченнями рядків Unix. Існує кілька різних закінчень рядків , але три варіанти є найпоширенішими:

  • "U + 000A LINE FEED" (LF): Unix, Linux, macOS тощо
  • "Повернення перевезення вантажів U + 000D" (CR): класичний macOS серед інших
  • "Повернення перевезення вантажів U + 000D", а потім "U + 000A LINE FEED" (CRLF): Windows та інші не-Unix / IBM операційні системи

Старіші версії Notepad розпізнають лише CRLF, але новіші версії підтримують CRLF, CR та LF .

Немає налаштувань змінювати цю поведінку в старих версіях Notepad, але ви можете повернутися до старої поведінки в новій версії . Більшість інших основних програм працювали з усіма трьома закінченнями рядків досить довгий час, тому, якщо ваш вміст працює у старих версіях Блокнота, він повинен працювати майже скрізь.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.