Mac os символ переноса строки

Обновлено: 01.07.2024

Вместе с другими действиями перевод строки выполняется также перед следующим абзацем или страницей.

Содержание

Терминология

Таким образом, вывод последовательности CR+LF в семантике терминала гарантирует действие «создание новой строки».

Терминалы (и их эмуляторы) могут также проводить различные преобразования символов (например, LFCR+LF, CRCR+LF) при вводе и выводе текста.

В ASCII

Системы, основанные на ASCII или совместимом наборе символов, используют или LF (перевод строки, 0x0A), или CR (возврат каретки, 0x0D) по отдельности, или последовательность CR+LF; см. ниже историческую причину для соглашения CR+LF. Эти названия основаны на командах принтера: перевод строки означает, что одна строка на бумаге должна быть перенесена при печати, а возврат каретки означает, что каретка печатающего устройства должна вернуться к началу текущей строки.

В Юникоде

По стандарту, любое совместимое с Юникодом приложение должно воспринимать как перевод строки каждый из нижеследующих символов:

Последовательность CR+LF (U+000D U+000A) надлежит воспринимать как один перевод строки, а не два [1] .

Трудности

Разница представлений

Последняя строка

Даже в современных изданиях ОС UNIX и Linux отсутствие перевода строки в конце системных конфигурационных файлов приводит к тому, что последняя строка не учитывается [2] , а вроде правильно составленный файл не работает, представляясь головоломкой для пользователя, не предупреждённого об этой самобытной особенности. См. раздел Конец строки.

История

На перфокартных системах хранения данных одна строка записывалась на одну перфокарту, поэтому строка была заданной длины, по количеству колонок (обычно 80). Строки короче добивались пробелами, а строки длиннее обрезались. Разделителя строк не было, а неявный перевод строки предполагался через каждые 80 символов. Некоторые ранние мейнфреймовые операционные системы переняли это для хранения текста в файлах, где уже не было естественного ограничения на длину строки.

На механических пишущих машинках был рычаг, который возвращал каретку к левому краю страницы и прокручивал вал, подвигая бумагу вверх на строку. На телетайпах и более поздних алфавитно-цифровых печатающих устройствах (АЦПУ) вместо каретки была головка, в лазерных принтерах она перестала быть материальной, но в термине возврат каретки всё это продолжали называть кареткой, чтобы его не менять. На телетайпах возврат каретки и подачу строки разделили, откуда традиция представления перевода строки как CR+LF перешла и к текстовым файлам.

Конец строки

Абзац

На телетайпах, а потом и в первых редакторах разделение текста на абзацы не имело своего особого представления, для этого использовали пустые строки или отступ из нескольких пробелов, а переводы строки внутри абзаца проставляли вручную.

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

Возврат каретки означает возврат к началу текущей строки без продвижения вниз. Название происходит от каретки принтера, так как мониторы были редкостью, когда название было придумано. Обычно это экранируется как \r , сокращенно CR , и имеет значение ASCII 13 или 0x0D .

Перевод строки означает переход вниз на следующую строку; тем не менее, он был перепрофилирован и переименован. Используемый как "новая строка ", он заканчивает строки (обычно путают с разделительными линиями). Обычно это экранируется как \n , сокращенно LF или NL, и имеет значение ASCII 10 или 0x0A . CRLF (но не CRNL) используется для пары \r\n .

Подача формы означает переход вниз на следующую «страницу». Он обычно использовался в качестве разделителей страниц, но теперь также используется в качестве разделителей разделов. (Он редко используется в исходном коде для разделения логически независимых функций или групп функций.) Текстовые редакторы могут использовать этот символ при «вставке разрыва страницы». Обычно это экранируется как \f , сокращенно FF , и имеет значение ASCII 12 или 0x0C .

Как управляющие символы, они могут интерпретироваться по-разному.

Наиболее распространенное отличие (и, вероятно, единственное, о чем стоит беспокоиться) - строки заканчиваются CRLF в Windows, NL в Unix-like и CR в старых Mac (ситуация изменилась с OS X, чтобы быть похожей на Unix). Обратите внимание, что смещение значения от LF к NL для одного и того же символа дает различия между Windows и Unix. (Windows, конечно, новее, чем Unix, поэтому она не приняла этот семантический сдвиг. Я не знаю историю Mac, использующих CR.) Многие текстовые редакторы могут читать файлы в любом из этих трех форматов и конвертировать между ними , но не все утилиты могут.

Подача формы немного более интересна (хотя реже используется напрямую), и с обычным определением разделителя страниц она может идти только между строками (например, после последовательности новой строки NL, CRLF или CR) или в начале или конец файла.

Разбивка на страницы, добавление разрыва строки или страницы в документе Pages

Используя форматирование, можно управлять перетеканием текста на странице.

Разрыв строки. Используйте разрыв строки, также называемый мягким переносом, чтобы перейти на новую строку, не начиная новый абзац.

Разрыв страницы. Используйте разрыв страницы (только в текстовом документе), чтобы переместить строку текста вверх следующей страницы или начать ввод на новой странице.

Можно также исключить отображение единичных строк текста вверху или внизу страницы (такие строки называются верхними и нижними висячими строками).

Перенос текста на новую строку или страницу

Нажмите там, где требуется вставить разрыв.

Выполните одно из следующих действий.

Вставка разрыва строки. Нажмите в панели инструментов, затем выберите «Разрыв строки». Также можно выбрать «Вставить» > «Разрыв строки».

Вставка разрыва страницы. Нажмите в панели инструментов, затем выберите «Разрыв страницы». Также можно выбрать «Вставить» > «Разрыв страницы».

При вставке разрыва страницы или разрыва строки Pages вставляет символ форматирования, называемый невидимым символом. Можно включить невидимые символы в документе, чтобы видеть, где применено особое форматирование.

Запрет отображения отдельных строк текста вверху или внизу страницы

Можно сделать так, чтобы страница не заканчивалась первой строкой абзаца, продолжающегося на следующей странице, (верхняя висячая строка), и не начиналась последней строкой абзаца с предыдущей страницы (нижней висячей строкой).

Нажмите абзац, для которого следует исключить висячие строки.


В верхней части боковой панели «Формат» нажмите кнопку «Еще».

Установите флажок «Исключать висячие строки».

Задание разрывов абзацев между страницами

В Pages можно настроить автоматическое применение правил разрыва абзацев между страницами в документе. Например, можно установить, чтобы заголовок и следующий за ним абзац всегда находились на одной странице.

Выберите абзацы, к которым нужно применить настройки.


В верхней части боковой панели «Формат» нажмите кнопку «Еще».

Установите нужные флажки в разделе «Разбивка на страницы и разрывы».

Все строки на одной странице. Все строки абзаца будут находиться на одной странице.

Не отрывать от следующего абзаца. Абзац будет находиться на той же странице, что и следующий абзац.

Начинать абзац с новой страницы. Абзац будет переноситься в начало следующей страницы.

Запретить висячие строки. Первая и последняя строка не будут отрываться от абзаца.

Удаление разрыва, вставленного в процессе форматирования

Установите указатель справа от метки форматирования, затем нажмите клавишу Delete на клавиатуре.

Можно включить невидимые символы в документе, чтобы видеть, где применено особое форматирование.

Notepad в windows 10 начал понимать юниксовый перевод строки, а не только формат Windows.

С проблемой «каши» вместо удобочитаемого текста десятилетиями сталкивались те, кто пытался открыть в среде Windows текстовые документы, подготовленные на других операционных системах. Теперь же всё в одночасье изменяется. И это изменение столь же мало, сколь и эпично по своим практическим результатам и идеологическим последствиям. Microsoft вновь пытается играть в кросс-интеграцию и поддержку открытых стандартов.

Долгие годы Windows Блокнот мог нормально отображать только те текстовые документы, которые содержали символы начала новой строки в формате Windows End of Line (EOL) — «возврат каретки» (CR) и «подача на строку» (LF). На деле это приводило к тому, что Notepad не смог правильно отобразить содержимое текстовых файлов, созданных в Unix, Linux и macOS, где в качестве признака конца строки использовался только символ LF.

Например, вот скриншот Notepad, пытающегося отобразить содержимое текстового файла Linux .bashrc, который содержит только символы Unix LF EOL:

image

А вот скриншот недавно обновленного «Блокнота», отображающего содержимое того же самого файла UNIX / Linux .bashrc, но с правильными переносами:

image


Обратите внимание, что строка состояния указывает обнаруженный формат EOL текущего открытого файла.

Так же для гибкого управления новой возможностью в разделе реестра [HKEY_CURRENT_USER\Software\Microsoft\Notepad] вводятся два дополнительных ключа:

image

По накалу страстей спор о способе начала новой строки в электронных документах сравним со спором о пробелах и табуляциях в исходных текстах программ. У этого противостояния «за строку» было много причин, как лежащих в области древних стандартов и традиций, так и берущих свои корни в особенностях конструкции печатных машин и телетайпов. Не меньшую роль сыграло и стремление одних программистов буквально выполнять (интерпретировать) команды и управляющие символы, а других — следовать здравому смыслу.

Что мы можем узнать о проблеме из Википедии

Исторически на механических пишущих машинках был рычаг, который возвращал каретку к левому краю страницы и прокручивал вал, подвигая бумагу вверх на строку. На телетайпах и более поздних алфавитно-цифровых печатающих устройствах (АЦПУ) вместо каретки была головка, в лазерных принтерах она перестала быть материальной, но в термине возврат каретки всё это продолжали называть кареткой, чтобы его не менять. На телетайпах возврат каретки и подачу строки разделили, откуда традиция представления перевода строки как CR+LF перешла и к текстовым файлам.

Системы, основанные на ASCII или совместимом наборе символов, используют или LF (перевод строки, 0x0A), или CR (возврат каретки, 0x0D) по отдельности, или последовательность CR+LF. Эти названия основаны на командах принтера: перевод строки означает, что одна строка на бумаге должна быть перенесена при печати, а возврат каретки означает, что каретка печатающего устройства должна вернуться к началу текущей строки.

  • LF (U+000A): англ. line feed — подача строки <ПС>;
  • CR (U+000D): англ. carriage return — возврат каретки <ВК>;
  • NEL (U+0085): англ. next line — переход на следующую строку;
  • LS (U+2028): англ. line separator — разделитель строк;
  • PS (U+2029): англ. paragraph separator — разделитель абзацев.

Но как известно, стандарты стандартами, а реализации у всех часто выходят разными. И масла в огонь подливает необходимость корректно отображать унаследованные документы, созданные до эпохи юникода. Отсутствие единого общепринятого представления перевода строки в разных операционных системах надолго осложнило обмен текстовыми данными между ними.

Юникод старается примирить эту разницу, уравнивая CR, LF и CR+LF, однако вступает в противоречие с наследуемым им ASCII при трактовке последовательности LF+CR, не предварённой CR: согласно ASCII это один перевод строки, а согласно Юникоду — два.

Читайте также: