Page 1 of 1
Символы переноса строк
Posted: Tue Oct 16, 2012 5:45 am
by F. Phoenix
Работаю над файлами, в которых LF и CRLF имеют разное назначение. При открытии и редактировании Акел их различает соответственно на [n] и [rn], но в момент сохранения он все конвертирует в установку "формат новой строки". Можно это дело как-то отрубить?
Posted: Tue Oct 16, 2012 3:24 pm
by Instructor
F. Phoenix
Не должно конвертироваться. Видимо перед сохранением вызывается какая-либо операция преобразования текста, например, убирание пробелов и табуляции в конце строк.
Posted: Wed Oct 17, 2012 4:28 am
by F. Phoenix
Хм... да вроде, ничего такого не ставил. Похоже, при Win-стиле оно все конвертит, при Unix - нет:
пример.
Хотя чет с разными переносами большинство редакторов косячит, включая Beyond Compare, которую я юзаю для слияния, так что чую, в моем случае будет проще написать пару скриптов для преобразования чистого
0x0A в сочетание
\n и обратно.
Posted: Wed Oct 17, 2012 4:59 am
by Instructor
F. Phoenix
Не понял, что демонстрирует файл. В файле все переводы строк \n (перепроверил из Hex редактора). Повторю переводы строк не должны конвертироваться (даже смешенные) при сохранении. Переводы строк можно проверять с помощью SpecialChar плагина.
Posted: Wed Oct 17, 2012 5:21 am
by F. Phoenix
Видать, хост или браузер развлекается.
Дубль 2, хотя он демонстрирует лишь поведение при сохранении. С включенным спешл-чаром и смотрю. Открываю файл - там в первом случае \n, во втором - \r\n, формат строки распознается как Unix. Меняю формат на Win - переводы остаются оригинальными; сохраняю - первый превращается в \r\n.
Posted: Wed Oct 17, 2012 5:30 am
by Instructor
F. Phoenix
Сохраняется без изменений переводов. Смотрите как вы сохраняете файл. Если через кнопку Toolbar, то что назначено на эту кнопку, если через горячую клавишу, то что назначено на эту горячую клавишу в Hotkeys "Все клавиши".
Добавлено:
Открываю файл - там в первом случае \n, во втором - \r\n, формат строки распознается как Unix. Меняю формат на Win - переводы остаются оригинальными; сохраняю - первый превращается в \r\n.
С этого и надо было начинать. При изменении формата новой строки все переводы при сохранении унифицируются.
изменение символа конца строки
Posted: Wed Jan 04, 2023 8:35 am
by konstazhoglo
храню файлы в кодировке UTF 8
заметил такую странность раньше
строки заканчивались символом конца строки \n
а теперь \rn
как это произошло и как вернуть всё назад?
p.s. на самом деле проблема в другом, при поиске строк
вида: ^([а-яА-Я])(.+?)( )([a-zA-Z])(.+?)$
и замене на: \4\5\3\1\2
т.е. если строка начинается с русского текста то он меняется местами с латинским и уходит в конец строки.
но после замены символа конца строки \n на \r\n
при замене теперь замененная строка оборачивается символами \r
как это побороть?
Posted: Mon Jan 09, 2023 4:58 am
by AZJIO
У тебя в меню правка есть такие пункты (это может быть в подменю):
"DOS/Windows (0Dh, 0Ah)" Command(4184)
"Unix (0Ah)" Command(4185)
"Mac (0Dh)" Command(4186)
Задай везде тип переноса строк. Если ты вставляешь из одного документа в другой разные варианты переноса строк, то у тебя документ может переключится к единому значению для стандартного в текущей ОС. Например для Windows нормально \r\n и если ты скопируешь текст из другого документа с переносами \r\n то AkelPad может проверить есть ли у тебя в тексте символ \r и если есть то приведёт документ к единому виду, но это не точно.
^([а-яА-ЯЁё])(.+?) ([a-zA-Z])(.+?)$
\3\4 \1\2
1. пробел можно не использовать как группу
2. "Ёё" также русские буквы но не входят в диапазон а-я и А-Я. Смотри таблицу символов, стандартная программа в Windows, найди там последовательности русского алфавита и посмотри входит ли "Ёё" в последовательность. Можно так [А-яЁё]