Блокнот, игнорирующий переносы строк [дубликаты]

36

На этот вопрос уже есть ответ здесь:

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

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

Damon
источник
См. Stackoverflow.com/a/50241693/6309 : Блокнот поддерживает \ n сейчас (Windows 10, Q2 2018)
VonC

Ответы:

45

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

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

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

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

Павел
источник
36
Ага! звучит немного как угробление блокнота, может быть намного проще; P
Damon
1
Абсолютно (прокладка).
Пол
3
Я думаю, что это действительно сбивает с толку, что это двадцатилетнее ограничение никогда не было исправлено ...
Haroldo_OK
1
открыть с помощью слова, сохранить, затем открыть с помощью блокнота ... копирование-вставка не требуется
Гэвин Палмер
2
Хорошие новости, технология, наконец, прибывает .
mkobit
9

Word Pad

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

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

Другие

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

RedGrittyBrick
источник
Моя проблема с / notepad ++ для действительно быстрого просмотра / редактирования заключается в том, что он сохраняет несколько документов открытыми, если я специально не закрою их; просто не подходит для такого использования. Я могу просто заново связать файлы текстового типа с worpad и убедиться, что это в моем open with...меню.
Деймон
2
Для тех, кто читает это несколько лет спустя, вы можете отключить эту функцию в настройках, что-то вроде «Запомнить текущий сеанс для следующего запуска»
Uberfuzzy
2
@ Дэймон Я тоже ненавидел это поведение, но ты можешь его отключить. Вам просто нужно настроить 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)
  • Изменяет дату создания файла на текущую дату
MD XF
источник
другая рекомендация. замените 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 ++ был упомянут конкретно в OP, он (по крайней мере, сейчас) имеет настройки, необходимые в:

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

Huendli
источник
Notepad ++ версии 7.5.9, параметры имеют имя «Windows (CR LF)» в разделе EOL Conversion.
Андре М. Фариа,
3

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

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

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

rgocs
источник
если у вас установлен Sublime, вы можете выбрать, View->Line endings -> Windowsа затем сохранить файл, чтобы перезаписать его. В этом случае окончания строки unix преобразуются в формат Windows. Если вы откроете этот сохраненный файл в Блокноте, он будет правильно отображать окончания строк.
Младший М
1

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

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

0b10011
источник