Преобразование табуляции в пробелы

Хотите говорить о Far и не знаете, куда обратиться?
Post Reply
User avatar
Wave
Posts: 1885
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 14 times
Been thanked: 26 times

Преобразование табуляции в пробелы

Post by Wave »

Обратил внимание на такую штуку.
Понадобилось мне преобразовать табуляции в пробелы в некоем файлике. Можно было, конечно, поиском с заменой по регуляркам или даже символ табуляции в поле поиска вставить. Но вспомнил, что есть такая опция редактора: преобразовывать все пробелы в табы. Наряду с не преобразовывать и преобразовывать только новые. Применил. И оказалось, что опция прекрасно превращает табы в пробелы, но при этом не происходит признака изменения файла. Если нажать Esc, то файл закроется без вопросов и не сохранившись. Если нажать Ctrl+Z, то ничего не случится. Если редактировал большой файл, а потом сдуру применил эту опцию, то откатить её последствия можно только не сохраняя файл.
Сейчас вот проверил, создал файл, вписал в него чего-то, вставил пару табов, переключил опцию на полное преобразование, потом переключил на не преобразовывать, попробовал Ctrl+Z, и оказалось, что редактор ведёт себя так, словно табов в файле сроду не было. Т.е. откатывает изменения в словах, но там, где вставлялись табы, откатывается так, словно вставлялись пробелы.

Я считаю, что это неправильно. Содержимое файла при включении этой опции меняется, значит надо эти изменения записывать в стек undo/redo и признак изменения файла.
Конечно, при этом есть проблема, что откатывать бесполезно, если эта опция всё ещё включена, но тут можно что-нибудь придумать. Например, применять эту опцию и сразу же автоматически переставлять её в положение только новые табы в пробелы. Или уведомлять пользователя, что, мол, следующий откат делать бесполезно пока не поменяешь опцию.

FAR 5400 x64.
P.s. Переключение этой опции у меня с древних времён забито в пользовательское меню в виде скрипта:

Code: Select all

lua: Option = 1; Value = 0; V = Editor.Set(Option, Value);
Пользуюсь ФАРом больше 20 лет © собирательный.
Post Reply

Return to “Обсуждение Far Manager”