Блокнот игнорирует переносы строк

В последнее время большинство документов я открываю в notepad.exe под windows 7, разрывов строк нет... все просто работает вместе. Те же документы в любой другой программе, даже предварительно просмотренные непосредственно в Проводнике, будут правильно отображать разрывы строк. это происходит со многими файлами.info,.css,.js.. но не со всеми.

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

7 ответов

Решение

Есть разрывы строк, однако разные операционные системы распознают разные последовательности разрывов строк.

Блокнот распознает только CR, LF (0x0d, 0x0a), тогда как другие источники могут использовать только CR или только LF.

Вы не можете заставить Блокнот вести себя по-другому, поэтому единственный вариант - убедиться, что содержимое имеет правильную последовательность для Блокнота. Обратите внимание, что блокнот является единственным редактором с этим ограничением, поэтому, если ваш контент работает в Блокноте, он будет работать везде.

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

Word Pad

Если вы не любите notepad ++ и другие текстовые редакторы, считая, что они не являются стандартной частью всех систем Windows, используйте Wordpad. Это не так элементарно, как Блокнот.

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

Другой

Если вы не любите оба текстовых редактора, тогда вам лучше подойдет notepad ++.

Как Notepad++ был упомянут конкретно в OP, он (по крайней мере, сейчас) имеет настройки, необходимые в:

Правка -> Преобразование EOL -> Формат Windows.

Вы можете написать простой пакетный скрипт:

@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)
  • Изменяет дату создания файла на текущую дату

Вам нужно изменить тип кодировки перевода строки, используемый в файле.

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

Более подробная информация об этом процессе находится в Википедии: http://en.wikipedia.org/wiki/Unix2dos где вы можете найти примеры различных программ командной строки, которые могут внести изменения.

Еще одна вещь, которую вы можете сделать: откройте файл в WordPad и сохраните его. Это исправит окончания строки. Это самый быстрый метод.

Вы правы, что это проблема с окончаниями строк Unix. Есть несколько разных концовок строки, но наиболее распространены три варианта:

  • "U + 000A LINE FEED" (LF): Unix, Linux, macOS и т. Д.
  • "U+000D ВОЗВРАТ КАРЬЕРЫ" (CR): классические macOS среди других
  • "U+000D RETURN RETURN", за которым следует "U+000A LINE FEED" (CRLF): Windows и другие не-Unix/IBM операционные системы

Более старые версии Блокнота распознают только CRLF, но более новые версии поддерживают CRLF, CR и LF.

В старых версиях Блокнота нет настроек, позволяющих изменить это поведение, но вы можете вернуться к старому поведению в новой версии. Большинство других распространенных программ работали со всеми тремя окончаниями строк в течение достаточно долгого времени, поэтому, если ваш контент работает в более старых версиях Notepad, он должен работать практически везде.

Другие вопросы по тегам