34

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

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

7 ответов7

43

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

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

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

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

9

Word Pad

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

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

Другой

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

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

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

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

3

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

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

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

1

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

1

Вы правы, что это проблема с окончаниями строк 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, он должен работать практически везде.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .