Возобновление предыдущей замены в новом редакторе

Здесь обсуждается всё, что касается макросов.
Post Reply
User avatar
HaRT
Moderator
Posts: 11454
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 270 times
Been thanked: 417 times

Возобновление предыдущей замены в новом редакторе

Post by HaRT »

Если в каком-то редакторе последней вызывали замену (а не просто поиск), то в новом редакторе по ShiftF7/AltF7 будет тоже запущена замена (условия которой сохранилась в диалоге) в соответствующем направлении. Если что найдётся, будет выдан стандартный диалог подтверждения (если не найдётся — тоже соответствующий стандартный диалог).
.

Ниже подклеена история вопроса.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Hunter1972
Posts: 26
Joined: Tue 25 May, 2010 12:58

Поиск и замена в тексте

Post by Hunter1972 »

Раньше (еще года 2-3 назад) было так
1) В одном файле массово заменяешь символ A на B без запроса (Replace all)
2) В следующем файле просто нажимая Shift+F7 все массового заменялось полностью аналогично
3) В какой то версии стало так что Shift+F7 вместо повтора Replace All, делает обычный поиск. Теперь после SHift+F7 приходится нажимать Ctrl-F7 потом All
4) Можно ли вернуть старое поведение?
Last edited by Hunter1972 on Thu 06 Mar, 2025 13:29, edited 1 time in total.
User avatar
HaRT
Moderator
Posts: 11454
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 270 times
Been thanked: 417 times

Поиск и замена в тексте

Post by HaRT »

Подтверждаю, что было, как вы описываете, — я сейчас специально проверил в Far Manager, version 3.0.0.5570 x64. И мне тоже стало менее удобно.

По идее должно быть несложно наскриптовать как-то так:
1. При закрытии диалога условий поиска/замены записать в глобальную переменную: SearchNext/SearchPrev или ReplaceNext/ReplacePrev.
2. В диалоге подтверждения замены, если нажали Replace all, в ту же переменную записать ReplaceAllNext/ReplaceAllPrev.
3. По нажатию ShiftF7 так или иначе вызвать соответствующие действия.
Но это, конечно, костыль. По хорошему следовало бы вернуть утраченную функциональность.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
buniak_a_h
Posts: 4559
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 242 times
Been thanked: 674 times
Contact:

Поиск и замена в тексте

Post by buniak_a_h »

HaRT wrote: Thu 06 Mar, 2025 14:22 По хорошему следовало бы вернуть утраченную функциональность
Неоднозначно. Забудешь, что в прошлый раз выбрал Replace All - и внесёшь такой бардак!
На мой взгляд по ShiftF7 должен возникать диалог подтверждения Replace / Skip / Replace All / Cancel (такой есть, например, при синтаксическом контроле)
User avatar
HaRT
Moderator
Posts: 11454
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 270 times
Been thanked: 417 times

Поиск и замена в тексте

Post by HaRT »

buniak_a_h wrote: Thu 06 Mar, 2025 15:40 и внесёшь такой бардак!
По хорошему, действие Replace All должно просто отменяться за одну операцию Undo — как, например, в RESearch, а не как в Фаре всю дорогу.
buniak_a_h wrote: Thu 06 Mar, 2025 15:40 На мой взгляд по ShiftF7 должен возникать диалог подтверждения
Да, можно и так. Будет особенно полезно, если с прошлой замены прошло заметное время.
buniak_a_h wrote: Thu 06 Mar, 2025 15:40 Replace / Skip / Replace All / Cancel (такой есть, например, при синтаксическом контроле)
Вот тут я не понял. Стандартный диалог подтверждения замены как раз такой.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
buniak_a_h
Posts: 4559
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 242 times
Been thanked: 674 times
Contact:

Поиск и замена в тексте

Post by buniak_a_h »

  1. У меня немного другие действия:
    Hunter1972 wrote: Thu 06 Mar, 2025 13:29 В какой то версии стало так что Shift+F7 вместо повтора Replace All, делает обычный поиск.
    У меня после закрытия файла по ShiftF7 ничего не происходит. Как будто не было поиска-замены, который надо повторить. Это, на самом деле, не очень удобно.
  2. Если файл не был закрыт, то по ShiftF7 вызывается диалог подтверждения (как я и писал).
Так что забудьте моё предыдущее сообщение. У меня сейчас всё делается почти так, как ожидается. Может, что-то зависит от настроек?
FAR 6447
User avatar
HaRT
Moderator
Posts: 11454
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 270 times
Been thanked: 417 times

Поиск и замена в тексте

Post by HaRT »

Вот, , чтобы если в каком-то редакторе последней вызывали замену (а не просто поиск), то в новом редакторе по ShiftF7/AltF7 будет тоже запущена замена (условия которой сохранилась в диалоге) в соответствующем направлении. Если что найдётся, будет выдан стандартный диалог подтверждения. Прошу погонять, не поломал ли я какие-то аспекты поведения в уже открытых редакторах, особенно если у кого сброшена настройка редактора [ ] Cursor at the end.
User avatar
HaRT
Moderator
Posts: 11454
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 270 times
Been thanked: 417 times

Поиск и замена в тексте

Post by HaRT »

HaRT wrote: Sun 16 Mar, 2025 05:01 не поломал ли я какие-то аспекты поведения в уже открытых редакторах
Вижу, поломал — привнёс нежелательное взаимовлияние уже открытых редакторов. Буду чинить.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
HaRT
Moderator
Posts: 11454
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 270 times
Been thanked: 417 times

Поиск и замена в тексте

Post by HaRT »

HaRT wrote: Sun 16 Mar, 2025 05:01 если в каком-то редакторе последней вызывали замену (а не просто поиск), то в новом редакторе по ShiftF7/AltF7 будет тоже запущена замена (условия которой сохранилась в диалоге) в соответствующем направлении. Если что найдётся, будет выдан стандартный диалог подтверждения.
Второй заход: . Заодно исправил поведение после диалога Find File.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
HaRT
Moderator
Posts: 11454
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 270 times
Been thanked: 417 times

Возобновление предыдущей замены в новом редакторе

Post by HaRT »

Тема преобразована, скрипт будет поддерживаться в заглавном сообщении.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Post Reply

Return to “Обсуждение макросов”