Символ возврата каретки что это

Обновлено: 25.06.2024

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

Linefeed означает переход вниз к следующей строке; однако он был переименован и переименован. Используется как "новая строка", он завершает линии (обычно путают с разделительными линиями). Это обычно экранируется как "\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) или на начало или конец файла.

\r - возврат каретки и перемещает курсор назад, как если бы я сделал -

означает, что он переместил курсор в начало "stackoverflow" и перезаписал стартовые четыре символа, так как "девять" имеет длину четыре символа.

\n - это новый символ линии, который меняет линию и переводит курсор в начало новой строки, например -

\f - это фид, его использование устарело, но оно используется для предоставления отступов типа

если я напишу как -

\f используется для разрыва страницы. Вы не видите никакого эффекта в консоли. Но когда вы используете эту константу символа в своем файле, вы можете увидеть разницу.

Запишите этот код в С++

и при компиляции он генерирует exe (например, abc.exe )

затем откройте файл xyz.doc , вы увидите фактический разрыв страницы между hellooo и hiiii.

20 tanascius [2010-06-22 11:42:00]

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

13 wxie [2015-07-09 12:52:00]

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

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

В UNIX/Mac и Linux в конце каждой строки помещается '\n', в Windows в конце каждой строки помещается '\ r\n'. Следствием этого использования является то, что файлы в UNIX/Mac будут отображаться в одной строке, если они открыты в Windows. Хотя файл в Windows будет иметь один ^ М в конце каждой строки, если он открыт в UNIX или Mac.

12 Amber [2010-06-22 11:42:00]

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

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

Рассмотрим принтер с ударным эффектом IBM 1403. CR переместила печатающую головку в начало линии, но НЕ продвигала бумагу. Это позволило сделать "надпечатку", поставив несколько строк вывода на одну строку. Такие вещи, как подчеркивание, были достигнуты таким же образом, как и печать BOLD. LF выдвинул бумагу на одну строку. Если CR не было, следующая строка будет печататься как шаг в шахматном порядке, потому что LF не перемещает печатающую головку. FF перевел бумагу на следующую страницу. Обычно он также перемещал печатающую головку в начало первой строки на новой странице, но для этого может потребоваться CR. Разумеется, большинство программистов кодировали CRFF вместо CRLF в конце последней строки на странице, потому что дополнительный CR, созданный FF, не имеет значения.

3 Gearon [2016-10-18 11:12:00]

В качестве дополнения,

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

2, Линейный канал. Это терминология принтера, означающая продвижение бумаги на одну строку. Поэтому возврат каретки и подача линии используются вместе для начала печати в начале новой строки. В мире компьютеров он обычно имеет то же значение, что и в новой строке.

3, Подача фида. Это терминология принтера, мне нравится объяснение в этой теме.

Это почти устарело, и вы можете обратиться к Escape sequence\f - form feed - что именно это? для подробного объяснения.

Обратите внимание: мы можем использовать CR или LF или CRLF для поддержки новой строки на некоторых платформах, но новая строка не может быть установлена ​​ими на некоторых других платформах. Подробнее см. wiki Newline.

Возврат каретки и подача линии также являются ссылками на пишущие машинки, поскольку при небольшом нажатии на ручку на левой стороне каретки (место, где идет бумага) бумага будет вращать небольшое количество вокруг цилиндра, продвигая документ на одну строку. Если вы закончили набирать одну строку и хотели продолжить переход к следующему, вы толкнули сильнее, продвигаясь по линии и передвигая каретку до упора вправо, а затем снова набираете текст слева направо, когда каретка перемещается с каждым нажатием клавиши, Излишне говорить, что слово-обертка была значением по умолчанию для всей текстовой обработки эпохи. Р: D

2 vpit3833 [2010-06-22 11:42:00]

"\n" - символ перевода строки. Это означает, что конец текущей строки и перейти к новой строке для всех, кто ее читает.

0 Palantir [2010-06-22 11:46:00]

Это непечатаемые символы, относящиеся к понятию "новая строка". \n - перевод строки. \r - возврат каретки. На разных платформах они имеют разные значения относительно действительной новой строки. В Windows новая строка -\r\n. В linux\n. В mac,\r.

На практике вы помещаете их в любую строку, и это повлияет на распечатку строки.

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

А что делать, если нам нужно, чтобы кавычки были внутри строкового литерала? Строка, содержащая кавычки — что может быть проще.

Допустим, мы хотим вывести текст Фильм "Друзья" номинирован на "Оскар" . Как это сделать?

Код Примечания
Этот вариант работать не будет!

Все дело в том, что по мнению компилятора тут записан совсем другой код:

Код Примечания
Этот вариант работать не будет!

После того, как компилятор встретит двойные кавычки в коде, он будет считать их началом строкового литерала. Следующие двойные кавычки — окончанием строкового литерала.

Так как же записать в двойные кавычки внутри литерала?

2. Экранирование символов

Способ есть, ему даже дали название — экранирование символов . Вы просто пишете внутри строки текста кавычки, а перед кавычками добавляете символ \ ( обратная косая черта или обратный слеш или бекслеш , от англ. backslash ).

Вот как будет выглядеть правильно записанный строковой литерал:

Код Примечания
Это сработает!

Компилятор все поймет правильно и не будет считать кавычки, расположенные после обратной косой черты , обычными кавычками.

Более того, если вывести данную строку на экран, кавычки с обратной косой чертой будут правильно обработаны, и на экран будет выведена надпись без обратной косой черты: Фильм "Друзья" номинирован на "Оскар"

Еще важный момент. Кавычки, предваренные обратной косой чертой — это один символ: мы просто пользуемся таким хитрым способом записи, чтобы не мешать компилятору распознавать строковые литералы в коде. Вы можете присвоить кавычки в переменную char :

Код Примечания
\" — это один символ, а не два
так тоже можно: двойная кавычка внутри одинарных кавычек

3. Часто возникающие ситуации при экранировании символов

Часто возникающие ситуации экранирования символов

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

Как добавить в литерал перенос строки? Для этого тоже есть специальная комбинация:

Если вы хотите добавить в строковой литерал перенос строки, вам нужно просто добавить пару символов – \n .

Код Вывод на экран

Всего таких специальных комбинаций 8: их еще называют escape-последовательностями , вот они:

Код Описание
\t Вставить символ табуляции
\b Вставить символ возврата на один символ
\n Вставить символ новой строки
\r Вставить символ возврата каретки
\f Вставить символ прогона страницы
\' Вставить одинарную кавычку
\" Вставить двойную кавычку
\\ Вставить обратный слеш

С двумя из них вы познакомились, а что значат остальные 6?

Символ табуляции – \t

Данный символ в тексте эквивалентен нажатию на клавиатуре клавиши Tab при наборе текста. Он сдвигает следующий за ним текст с целью его выровнять.

Код Вывод на экран

Возврат на один символ назад – \b

Данный символ в тексте эквивалентен нажатию на клавиатуре клавиши Backspace при наборе текста. Он удаляет последний выведенный символ перед ним:

Код Вывод на экран

Символ возврата каретки – \r

Этот символ переносит курсор в начало текущей строки, не меняя текста. Следующий выводимый текст будет перетирать существующий.

Код Вывод на экран

Символ прогона страницы – \f

Это символ дошел до нас из эпохи первых матричных принтеров. Если подать такой символ на печать, это приводило к тому, что принтер просто прокручивал текущий лист, не печатая текст, пока не начнется новый.

Сейчас бы мы назвали его разрыв страницы или новая страница .

Обратный слэш – \\

Ну а тут вообще все просто. Если мы используем обратную косую черту (обратный слэш) в тексте, чтобы экранировать символы, то как тогда записать в текстовой строке сам символ косой черты?

Все просто: чтобы добавить в текст символ обратной косой черты , его нужно написать два раза подряд.

Код Вывод на экран
Компилятор будет ругаться на неизвестные экранированные символы.
Вот так правильно!

Выведи на экран следующий текст в две строки: It's Windows path: "C:\Program Files\Java\jdk-13.0.0\bin" It's Java string: \"C:\\Program Files\\Java\\jdk-13.0.0\\bin\" Подсказка: \” – экранирование двойной кавычки; \\ – экранирование обратной косой черты (\). Больше про экранирование символов и Esca

4. Кодировка Unicode

Как вы уже знаете, каждому символу, отображаемому на экране, соответствует определенный числовой код. Стандартизированный набор таких кодов называют кодировкой .

Когда-то давно, когда только изобрели компьютеры, для кодировки всех символов было достаточно семи бит (меньше одного байта) – первая кодировка содержала всего 128 символов. Называлась такая кодировка ASCII .

ASCII (англ. American Standard Code for Information Interchange) — американская стандартная кодировочная таблица для печатных символов и некоторых специальных кодов.

Она состояла из 33 непечатных управляющих символов (влияющих на обработку текста и пробелов) и 95 печатных символов, включая цифры, буквы латинского алфавита в строчном и прописном вариантах и ряд пунктуационных символов.

Кодировка Unicode

Рост популярности компьютеров привел к тому, что каждая страна начала выпускать свою кодировку. Обычно за основу брали ASCII и заменяли редко используемые символы на символы национальных алфавитов.

Со временем появилась идея: создать одну кодировку, в которой разместить все символы всех мировых кодировок.

Кодировка Unicode 1

В 1993 году была создана кодировка Unicode , и язык Java был первым языком программирования, который использовал ее как стандарт хранения текста. Сейчас же Unicode — стандарт всей ИТ-индустрии.

И хотя Unicode сам по себе является стандартом, у него есть несколько форм представления (Unicode transformation format, UTF): UTF-8, UTF-16 и UTF-32, и пр.

В Java используется продвинутая разновидность кодировки Unicode – UTF-16: каждый символ в которой кодировался 16 битами (2 байтами). Она способна вместить до 65,536 символов!

В этой кодировке можно найти почти все символы всех алфавитов мира. Но наизусть ее, естественно, никто не знает: нельзя знать все, но все можно загуглить.

Чтобы записать в коде программы символ кодировки Unicode по его коду, нужно написать \u + шестнадцатеричные цифры кода . Например \u00A9

важно ли иметь правильный порядок возврата каретки, а затем новую линию подачи? Для текстовых редакторов имеет ли значение, в каком порядке они появляются?

похоже, что Джефф уже написал очень хороший Блоге на эту тему.

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

причина этого восходит к старому телетайпу ASR-33.

когда возврат каретки выдается ASR-33, печатающая головка, если она находится рядом с правым краем, занимает десятую долю секунды, чтобы вернуться к левому краю, плюс есть немного "отскока", когда левое поле поражено.

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

некоторые системы (я думаю, что старая ОС Xerox Sigma 7, например) делают подачу строки, а затем возврат каретки, но они вводят, например, нулевые символы в поток данных, чтобы позволить печатающей головке делать это вещь.

и, конечно, когда вы добираетесь до более быстрых устройств (например, некоторые ранние 30 CPS-телепринтеры), проблема ухудшается, и требуется более сложная стратегия.

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

существует три распространенных формата linefeed:

  • \r\n для мира DOS\Windows
  • \r для мира Mac до OSX
  • \n для Unix и Unix-подобного мира

\n\r не является стандартом нигде, о котором я знаю, и, вероятно, приведет к тому, что ваш редактор подумает, что у него есть текстовый файл в формате Unix, а затем он отобразит странный символ \r в виде текста.

исторически \r переводится как возврат каретки (CR, ASCII код 13), который относится к старой школьной пишущей машинке, где вы будете толкать каретку назад влево, чтобы вернуть курсор обратно в начало строки. \n переводится в строку feed (LF, ASCII-код 10), которая перемещает символ вниз по странице на один символ. Хотя потенциально интересно, это, как правило, не имеет значения - просто используйте соответствующий формат linefeed для вашей текущей платформы.

как раз следование на возвращении экипажа, после этого линия бак исследования питания.

с Блокнотом он обнаруживает, когда конец строки, когда он находит символ CR+LF. Это общий формат, используемый CP / M, MS-DOS и Win32,источник

Unix обнаруживает конец строки, когда он находит LF.
Apple обнаруживает конец строки, когда он находит CR.

С точки зрения Uni-кода существует управляющий символ, называемый СЛЕДУЮЩАЯ СТРОКА (NEL) просто сделать ситуацию еще более сложной.

С языком программирования C, почему он выписывает возврат каретки + подача строки, Когда вы даете ему символ подачи строки? например

printf ("hello World\n").

язык программирования C и операционная система Unix переопределили символ подачи строки как символ новой строки с намерением, что библиотека stdio преобразует строки характер на все, что нужно, чтобы фактически перейти к началу следующей строки для этой платформы, например, возврат каретки + подача строки для Win32.

поэтому, когда вы пишете новый символ строки (это действительно символ LF) на C/C++ и на Windows или Linux, библиотека studio определит формат вывода, который нужно будет вывести для этого конца строки для этой платформы.

это очевидно при создании двоичного файла или текстового файла в C программа. Если указать, что вы пишете двоичный файл, библиотека studio оставит выходной формат без изменений для этой платформы. Поэтому при записи данных в файл и попадании в символ новой строки он не будет вставлять зависимые от платформы символы для новой строки.

хотя прихожу к выводу после всего этого.

даже если вы следуете правилам Win32 для возврата каретки + Line Feed, например, записывая следующее в файл как чистый двоичный файл файл.

MyText \n MyText \n MyText

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

большинство редакторов вместо этого будут отображать его так.

путаница в основном из-за стандарта C, который использует \N новый символ строки для двух разных значений. Во-первых, в качестве нового линейного индикатора для библиотеки STIO конвертировать в операционную систему новые формат строки (CR+LF на win32, LF на Linux и CR для Apple). Во-вторых, как только шестнадцатеричное значение линии подачи.

хорошо после 10 ревизий и опробования различных подходов на Win3.1,95,98, XP я пришел к выводу, что не смог найти приложение, которое использовало бы CR и LF независимо и может использовать их комбинацию в одном документе. Большинство текстовых редакторов будут показывать квадрат, когда он попадает в один CR или LF. Большинство текстовых редакторов smarter изменят формат файла в зависимости от того, они находят CR+LF/LF / CR для соответствующей платформы.

большинство, если не все редакторы заботятся только о рендеринге новой строки пользователю и будут переключаться между различными форматами файлов. Поэтому, если ваш писатель лексер и строка токенизатор в ближайшее время и беспокоиться о том, когда обнаружить новую строку. Его лучше всего для нижних уровней, чтобы обнаружить формат файла (CR + LF Win32, LF Linux, CR Apple), чтобы увеличить номер строки. Или используйте функцию ReadLine, которая будет учитывать это счет.

по меньшей мере, непонятно, почему IBM и Win32 приняли Carriage Return + Line Feed в качестве стандарта для указания текстовому редактору отображать новую строку. Когда на самом деле его избыточность. Я не смог найти ни одного приложения, которое отображало или использовало возврат каретки + линейный канал независимо от фактического имени, которое он предлагает.

Итак, если ваш студент университета пишет новый текстовый редактор, чтобы удивить мир. Автоматическое обнаружение файла формат, и не беспокойтесь о фактическом техническом значении, данном CR+LF.

(извините за удар, но это основной результат для результатов поиска по этому вопросу)

в Notepad++ это важно. Когда вы начинаете с перевода строки \n и затем возврат каретки \r ваш перевод строки на следующей строке. Поэтому порядок должен быть: CR LF

Иногда при просмотре диффов коммитов через git log или git diff можно заметить следующий вывод:

Или на GitHub в интерфейсе для просмотра диффов:

GitHub

Почему это так важно, что Git и GitHub предупреждают нас об этом? Давайте разберемся.

Что может быть проще, чем текстовый файл? Просто текстовые данные — как хранятся на диске, так и отображаются. На самом деле правительство нам врёт всё немного сложнее.

Оффтопик про управляющие символы ASCII

Не все символы, которые содержатся в текстовых файлах, имеют визуальное представление. Такие символы ещё называют "управляющими", и к ним относятся, например:

  • нулевой символ ( x00 , \0 ) — часто используется для кодирования конца строки в памяти; т.е. программа считывает символы из памяти по одному до тех пор, пока не встретит нулевой символ, и тогда строка считается завершённой;
  • табуляция ( \x09 , \t ) — используется для выравнивания данных по границе столбца, так что это выглядит как таблица;
  • перевод строки ( \x0a , \n ) — используется для разделения текстовых данных на отдельные строки;
  • возврат каретки ( \x0d , \r ) — переместить курсор в начало строки;
  • возврат на один символ ( \x08 , \b ) — переместить курсор на один символ назад;
  • звонок ( \x07 , \a ) — если набрать этот символ в терминале, то будет бибикающий символ; именно так консольные программы, типа vim , бибикают на пользователей; .

Многие эти символы пришли к нам из эпохи печатных машинок, поэтому у них такие странные названия. И действительно, в контексте печатной машинки или принтера такие операции, как перевод строки (сместить лист бумаги вверх так, чтобы печатающая головка попала на следующую строку), возврат каретки (переместить печатающую головку в крайнее левое положение) и возврат на один символ назад, обретают смысл. При помощи возврата на один символ назад создавались жирные символы (печатаешь символ, возвращаешься назад и печатаешь его ещё раз) и буквы с диакритическими знаками, такие как à или ã (печатаешь символ, возвращаешься назад и печатаешь апостроф или тильду). Но зачем печатной машинке бибикалка?

Сегодня многие из этих символов потеряли смысл, но некоторые до сих пор выполняют функцию, схожую с исходной.

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

Для набора символа переноса строки достаточно нажать клавишу "Enter", но на разных платформах этот символ закодируется по-разному:

  • в Unix-совместимых системах (включая современные версии macOS) используется один символ перевода строки ( LF );
  • в Windows используется сразу два символа — возврат каретки ( CR ) и перевод строки ( LF );
  • в очень старых версиях Mac OS (до 2001 года) использовался один символ CR .

Как видите, Windows точнее всего эмулирует поведение печатной машинки.

В языках программирования символ новой строки часто кодируют при помощи бэкслэш-последовательностей, таких как \n или \r\n . Нужно понимать разницу между такой последовательностью и настоящим символом переноса строки. Если в редакторе в файле *.txt просто набрать \n и сохранить, то вы получите ровно то, что написали. Символом переноса строки оно не станет. Нужно что-то, что заменит эти бэкслэш-последовательности на настоящие символы переноса строки (например, компилятор или интерпретатор языка программирования).

Согласно определению из стандарта POSIX, который тоже пришёл к нам из эпохи печатных машинок:

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

Почему важен этот стандарт? Возможен миллиард способов реализовать одно и то же, и только благодаря стандартам, таким как POSIX, мы имеем сейчас огромное количество качественного ПО, которое не конфликтует друг с другом.

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

Давайте, например, через Python создадим такой файл со сломанными строками:

Сколько по-вашему в этом файле строк? Три? Давайте посмотрим, что об этом файле думает утилита wc , которая с флагом -l умеет считать количество строк в файле:

Упс! wc нашла только 2 строки!

Давайте создадим еще один файл:

И попробуем теперь склеить два созданных файла при помощи утилиты cat :

Название cat — это сокращение от "конкатенация", и никак не связано с котиками. А жаль.

И опять какой-то странный результат! В большинстве случаев это не то, чего вы бы ожидали, но вполне возможны ситуации, когда вам нужен именно такой результат. Именно поэтому утилита cat не может самостоятельно вставлять отсутствующие символы переноса строки, иначе это сделало бы её поведение неконсистентным.

Это только пара примеров, но многие другие утилиты, которые работают с текстом (например, diff , grep , sed ), имеют такие же проблемы. Собственно говоря, это даже не проблемы, а их задокументированное поведение.

Ещё доводы:

Самый простой способ перестать думать о пустых строках и начать жить — это настроить свой текстовый редактор или IDE на автоматическое добавление символа переноса строки в конец файлов:

  • PyCharm и другие IDE JetBrains: Settings > Editor > General > Ensure an empty line at the end of a file on Save ;
  • VS Code: "files.insertFinalNewline": true .

Для других редакторов смотрите настройку здесь.

Возможно, такая маленькая деталь, как перенос строки в конце файла и не кажется очень важной, а тема вообще кажется спорной, но боюсь, что у нас нет другого выбора, кроме как принять это правило за данность и просто выработать привычку (или настроить инструментарий) всегда ставить символ новой строки в любых текстовых файлах, даже если этого не требуется явно. Это считается распространённой хорошей практикой, и как минимум убережёт вас и ваших коллег от всяких неожиданных эффектов при работе с утилитами Unix.

В текстовом редакторе это выглядит как лишняя пустая строка в конце файла:

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