Преобразование EOL в блокноте ++

По какой-то причине, когда я открываю файлы с unix-сервера на моем компьютере с Windows, они иногда имеют преобразование Macintosh EOL, и когда я редактирую/сохраняю их снова, они не работают должным образом на unix-сервере. Я использую блокнот ++ только для редактирования файлов с этого сервера Unix, поэтому есть ли способ создать макрос, который автоматически преобразует EOL в формат Unix всякий раз, когда я открываю файл?


person Jeff    schedule 26.04.2013    source источник
comment
возможный дубликат Изменить EOL для нескольких файлов за один раз   -  person Navid EMAD    schedule 23.07.2015
comment
Ваша проблема может быть связана с любой программой FTP, которую вы используете. Например, я использую WinSCP для удаленного доступа к серверу Unix, Notepad++ установлен в качестве редактора по умолчанию, но мне пришлось зайти в настройки WinSCP и установить режим передачи на Binary, чтобы сохранить окончания строк. Таким образом, вы можете перенастроить свою программу FTP/SCP/etc для передачи файлов другим способом.   -  person Slicktrick    schedule 23.02.2017


Ответы (4)


Эта функциональность уже встроена в Notepad++. В меню «Правка» выберите «Преобразование EOL» -> «Формат UNIX/OSX».

скриншот опции для еще более быстрого поиска (или разных языковых версий)

Вы также можете установить EOL по умолчанию в notepad ++ через «Настройки» -> «Настройки» -> «Новый документ / Каталог по умолчанию», затем выберите «Unix / OSX» в поле «Формат».

person Nate Allen    schedule 26.04.2013
comment
Про конвертацию в меню редактирования знаю, а указанные вами настройки только для новых документов. Я хочу автоматически преобразовывать каждый файл, который я открываю (или каждый файл, который я сохраняю) - person Jeff; 01.05.2013
comment
Проблема в том, что когда я открываю существующий файл Unix, EOL Conversion --> UNIX/OSX Format отображается серым цветом. Notepad ++ неудобно использовать с файлами UNIX, поэтому я использую Notetab Lite, который позволяет мне сохранять все файлы как UNIX, а не только новые. - person Off The Gold; 29.12.2016
comment
@OffTheGold Параметр UNIX EOL выделен серым цветом, поскольку он является текущим выбором. - person blakeoft; 06.06.2017
comment
Право на. Спасибо от ноября 2017 года через Google. - person SDsolar; 09.11.2017
comment
Это не работает для меня. Я продолжаю выбирать EOL Conversion -> Unix, но ничего не происходит. Я возвращаюсь в меню и вижу, что Windows неактивна (поэтому выбрана?), поэтому я снова нажимаю Unix. Я даже пытался сначала выделить весь мой текст на случай, если он работает только при выделении, а затем снова выбрал Unix. Все равно ничего не делает. - person Loduwijk; 18.10.2019
comment
…и теперь я понял, почему. Для файла был установлен флаг только для чтения (не путать с отсутствием разрешения на запись). В Notepad ++ мне пришлось перейти в меню «Правка» и сначала выбрать «Очистить флаг только для чтения», затем я мог сделать выбор преобразования EOL, и это сработало. - person Loduwijk; 18.10.2019

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

(\r?\n)|(\r\n?)

to

\n

Это сопоставит каждый возможный шаблон окончания строки (одиночный \r, \n или \r\n) обратно в \n. (Или \r\n, если вы конвертируете в стиль Windows)

Для работы с несколькими файлами:

  • Используйте «Заменить все во всех открытых документах» на вкладке «Заменить». Сначала вам нужно будет перетащить все файлы в Notepad++. Хорошо, что у вас будет контроль над тем, с каким файлом работать, но это может быть медленным, если есть несколько сотен или тысяч файлов.
  • «Заменить в файлах» на вкладке «Найти в файлах», выбранным фильтром файлов, например, *.cpp *.cs в одном указанном каталоге.
person Wappenull    schedule 24.07.2015
comment
Это может привести к потере EOL из-за замены \r\n\r\n на один \n. Я думаю. - person Sunspawn; 20.03.2016
comment
Подтвердите работу в Notepad++ 6.9.1. Он будет искать вперед, поэтому не рекурсивно заменяет те, что позади. - person Wappenull; 05.07.2016
comment
В ответ на: Это может привести к потере EOL из-за замены \r\n\r\n на один \n ›› Этого не произойдет, поскольку он использует | (или) оператор между 2 возможными группами. - person Wappenull; 19.10.2019

Я открываю файлы «напрямую» из WinSCP, который открывает файлы в Notepad ++. У меня были файлы php на моем сервере Linux, которые всегда открывались в формате Mac, независимо от того, что я делал :-(

Если я загрузил файл, а затем открыл его локально (Windows), он был открыт как Dos / Windows .... хммм

Решение заключалось в том, чтобы EOL-преобразовать локальный файл в «формат UNIX/OSX», сохранить его, а затем загрузить.

Теперь, когда я открываю файл непосредственно с сервера, он открывается как "Dos/Windows" :-)

person MrCalvin    schedule 18.01.2016

В зависимости от вашего проекта вы можете рассмотреть возможность использования EditorConfig (https://editorconfig.org/). Существует плагин Notepad ++, который загружает .editorconfig, где вы можете указать «lf» в качестве обязательного окончания строки.

Я только начал его использовать, но пока это хорошо, и проекты с открытым исходным кодом, над которыми я работал, включали файлы .editorconfig в течение многих лет. Параметр «Преобразование EOL» не изменился, поэтому он может немного сбивать с толку, но если вы «Просмотр»> «Показать символ»> «Показать конец строки», вы увидите, что он добавляет LF вместо CRLF, даже когда «Преобразование EOL ", а нижний нижний угол показывает что-то другое (например, Windows (CR LF)).

person D. Cook    schedule 10.10.2019