Как добавить символ новой строки в notepad ++, как в Vim?

1850
statox

У меня есть скрипт bash, который разбирает текстовые файлы. В этих текстовых файлах некоторые строки содержат символ новой строки, когда я открываю файл с помощью Vim, он выглядит так:

data 1=part 1 ^M part 2 data 2=part 1 

Я вставил ^Mсимвол в VIM благодаря Ctrl+vEnter.

Скрипт будет рассматривать каждую строку файла как описание данных и будет понимать, что data 1это текст, содержащий новую строку.

Теперь моему коллеге нужно создать такой же файл, но он не будет использовать Vim:

  • Если он использует enterвместо Ctrl+vEnterэтого, создаст новую строку, и мой скрипт не будет работать должным образом (рассматривая обе части data1как две отдельные строки данных).
  • Если он вставит \nили \rвручную, сценарий будет считать, что data 1это одна строка текста, содержащая символ, \после которого nили rбез специального значения.

Как он может создать тот же файл с редактором, как Notepad ++? Т.е. как он может добавить символ новой строки, который не будет интерпретироваться блокнотом ++

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

1
Какой символ / тип разрыва строки используется в файле для разделения записей на их собственные строки? CR, LF, оба? Ƭᴇcʜιᴇ007 7 лет назад 0
@ Ƭᴇcʜιᴇ007: файлы создаются на окнах, поэтому я бы сказал, что стандарт CR + LF statox 7 лет назад 0
Итак, вы пытаетесь вставить / показать символ ASCII "ALT + 13" (просто CR) вместо того, чтобы рассматривать его как CR / LF, правильно? Ƭᴇcʜιᴇ007 7 лет назад 0
@ Ƭᴇcʜιᴇ007 Вы, вероятно, правы, но в настройках `alt + 13` вставьте музыкальную ноту ♪ statox 7 лет назад 0
Извините, это будет `alt + 013` в Windows. Честно говоря, я думаю, что вам не повезло, так как NP ++, кажется, всегда рассматривает CR как новую строку, независимо от того, включает ли он LF или нет ... возможно, плагин, чтобы изменить это, но я не могу найти один из них. Может быть, кто-то еще знает. :) Удачи! Ƭᴇcʜιᴇ007 7 лет назад 0
О, очень плохо ... Большое спасибо за ваше участие, я действительно надеюсь, что кто-то знает способ :-) statox 7 лет назад 0

1 ответ на вопрос

1
aventurin

^M используется для отображения символа ВОЗВРАТА КОРПУСА (ASCII 13, 0x0D) в vim.

Вы можете напечатать его Alt + 013на цифровой клавиатуре в Notepad ++. Тем не менее, Notepad ++, кажется, всегда помещает вновь напечатанный возврат каретки в конце существующего разрыва строки, независимо от того, какой стиль разрыва строки установлен для файла. Поэтому я бы не рекомендовал Notepad ++ для этого.

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

Похожие вопросы