Перетворення EOL у блокнот ++


113

З якоїсь причини, коли я відкриваю файли з сервера Unix на своїй машині Windows, вони періодично мають Macintosh EOL перетворення, і коли я їх знову редагую / зберігаю, вони не працюють належним чином на сервері Unix. Я використовую блокнот ++ лише для редагування файлів з цього Unix-сервера, тож чи є спосіб створити макрос, який автоматично перетворює EOL у формат Unix, коли я відкриваю файл?



1
Проблема може бути з будь-якою програмою FTP, яку ви використовуєте. Наприклад, я використовую WinSCP для віддаленого доступу до сервера Unix, Notepad ++ встановлений моїм редактором за замовчуванням, але мені довелося зайти в налаштування WinSCP і встановити режим передачі Binary, щоб зберегти закінчення рядків. Отже, можливо, ви зможете переконфігурувати програму FTP / SCP / тощо для передачі файлів іншим способом.
Slicktrick

Відповіді:


200

Ця функціональність вже вбудована в Notepad ++. У меню "Редагувати" виберіть "Перетворення EOL" -> "Формат UNIX / OSX".

знімок екрана для ще швидшого пошуку (або різних мовних версій)

Ви також можете встановити EOL за замовчуванням у блокноті ++ через "Налаштування" -> "Налаштування" -> "Новий документ / Каталог за замовчуванням", а потім виберіть "Unix / OSX" у полі Формат.


7
Я знаю про перетворення в меню редагування, а налаштування, які ви згадали, стосуються лише нових документів. Я хочу автоматично зробити перетворення для кожного відкритого файлу (або кожного збереженого файлу)
Jeff,

Проблема полягає в тому, що коли я відкриваю вже наявний файл Unix, "EOL Conversion" -> UNIX / OSX Format замуровано. Використовувати Notepad ++ для файлів UNIX неприємно, тому я використовую Notetab Lite, який дозволяє мені зберігати всі файли як UNIX, а не лише нові.
Вимкнено золото

3
@OffTheGold Параметр UNIX EOL замурований, оскільки це поточний вибір.
blakeoft

ПРАВИЛО. Дякуємо з листопада 2017 року через Google.
SDsolar

Це не працює для мене. Я постійно вибираю "EOL Conversion -> Unix", але це нічого не робить. Повертаюсь до меню і бачу, що Windows - це варіант із сірим кольором (тому вибрано?), Тому я знову натискаю Unix. Я навіть спробував спершу виділити весь текст, якщо він працює лише на виділення, а потім знову вибрав Unix. Все одно це нічого не робить.
Loduwijk

16

У Блокноті ++ використовуйте заміну всіх регулярним виразом. Це має перевагу перед командою перетворення в меню, що ви можете працювати над цілою папкою без необхідності відкривати кожен файл або перетягувати падіння (на кілька сотень файлів це помітно стане повільніше), а також ви можете встановити фільтр підстановки під назвою файлу.

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

до

\n

Це відповідатиме кожному можливому шаблону закінчення рядка (одинарний \ r, \ n або \ r \ n) назад до \ n. (Або \ r \ n, якщо ви переходите до стилю Windows)

Для роботи з кількома файлами виконайте такі дії:

  • Використовуйте "Замінити все в усьому відкритому документі" на вкладці "Замінити". Вам доведеться спочатку перетягнути всі файли в Блокнот ++. Добре, що ви будете контролювати, над яким файлом працювати, але можете бути повільним, якщо є кілька сотень чи тисяч файлів.
  • "Замінити у файлах" на вкладці "Знайти у файлах", на обраний вами фільтр файлів, наприклад, * .cpp * .cs в одному заданому каталозі.

Це може призвести до втрати EOL внаслідок заміни \ r \ n \ r \ n одиничним \ n. Я думаю.
Сонячний пісок

Підтвердьте роботу в Блокноті ++ 6.9.1. Він буде шукати вперед, тому не буде рекурсивно замінювати тих, хто позаду.
Wappenull

У відповідь на це: "Це може призвести до втрати EOL через заміну \ r \ n \ r \ n одинаковою \ n" >> Це не стане, як використовується | (або) оператор між двома можливими групами.
Wappenull

3

Я відкриваю файли «безпосередньо» з WinSCP, який відкриває файли в Блокноті ++ У мене на сервері Linux був PHP-файл, який завжди відкривався у форматі Mac, незалежно від того, що я робив :-(

Якщо я завантажив файл, а потім відкрив його з локальних (windows), він був відкритий як Dos / Windows .... хм

Рішення полягало в перетворенні EOL-локального файлу в "Формат UNIX / OSX", збереженні його та завантаженні.

Тепер, коли я відкриваю файл безпосередньо з сервера, він відкривається як "Dos / Windows" :-)


1

Залежно від вашого проекту, ви можете розглянути можливість використання EditorConfig ( https://editorconfig.org/ ). Є плагін Notepad ++, який завантажить .editorconfig, де ви можете вказати "lf" як обов'язкове закінчення рядка.

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.