Странное поведение поиска F7/Shift-F7 в редактировании Topic is solved
Странное поведение поиска F7/Shift-F7 в редактировании
Возьмем некоторый файл, к примеру Bug.Report.txt из поставки фара.
Жмем F7, вводим в строку поиска символ "y" ("игрек").
Жмем энтер. Всё ОК - попадаем в первое вхождение - строка 7, колонка 2.
Жмем Shift-F7. Всё ОК - попадаем во второе вхождение, строка 7, колонка 34.
Хотим каждое последующее вхождение "y" начинать с новой строки. Жмем быстро Enter, Shift-F7, Enter, Shift-F7... ожидая одного поведения поиска, а получая на деле другое. Это случай, когда нет времени или не хочется связываться с регекспами, а нужно быстро отформатировать небольшой текст или фрагмент.
Что мы получаем в результате? Вместо одного переноса строки мы получили везде по два и проделали в два раза больше нажатий.
Причина - после переноса строки и какого-либо иного вмешательства позиция поиска осталась на предыдущем месте, хотя найденное вхождение переместилось вперед, и Shift-F7 повторно находит то же самое, где у нас и так стоит курсор.
Жмем F7, вводим в строку поиска символ "y" ("игрек").
Жмем энтер. Всё ОК - попадаем в первое вхождение - строка 7, колонка 2.
Жмем Shift-F7. Всё ОК - попадаем во второе вхождение, строка 7, колонка 34.
Хотим каждое последующее вхождение "y" начинать с новой строки. Жмем быстро Enter, Shift-F7, Enter, Shift-F7... ожидая одного поведения поиска, а получая на деле другое. Это случай, когда нет времени или не хочется связываться с регекспами, а нужно быстро отформатировать небольшой текст или фрагмент.
Что мы получаем в результате? Вместо одного переноса строки мы получили везде по два и проделали в два раза больше нажатий.
Причина - после переноса строки и какого-либо иного вмешательства позиция поиска осталась на предыдущем месте, хотя найденное вхождение переместилось вперед, и Shift-F7 повторно находит то же самое, где у нас и так стоит курсор.
Странное поведение поиска F7/Shift-F7 в редактировании
Данное поведение замечено на фаре, обвешанном плагинами.
Первым делом полез в настройки редактора, и там пробовал другое положение "выделять найденное" (потому как после переноса найденного символа в новую строку подсвечивается конец предыдущей строки до конца экрана) - не помогло. Далее убрал все плагины - не помогло. Далее взял скачал архивы последней ночной сборки и последней стабильной, удалил все записи из реестра о фаре, развернул "с чистого листа", проверил в ночной - такое поведение присутствует, проверил в стабильной - то же самое.
Помнится в фар-2 ... 1.75 поведение было корректным, да я вот только полчаса как удалил все упоминания о фар2- у себя.
Первым делом полез в настройки редактора, и там пробовал другое положение "выделять найденное" (потому как после переноса найденного символа в новую строку подсвечивается конец предыдущей строки до конца экрана) - не помогло. Далее убрал все плагины - не помогло. Далее взял скачал архивы последней ночной сборки и последней стабильной, удалил все записи из реестра о фаре, развернул "с чистого листа", проверил в ночной - такое поведение присутствует, проверил в стабильной - то же самое.
Помнится в фар-2 ... 1.75 поведение было корректным, да я вот только полчаса как удалил все упоминания о фар2- у себя.
Странное поведение поиска F7/Shift-F7 в редактировании
Shift-F7 продолжает поиск, пропуская найденное в текущей позиции, если поиск не прерывался.
Если после поиска было редактирование или перемещение курсора, поиск начинается заново и
то что под курсором не пропускается (как при нажатии F7).
Если после поиска было редактирование или перемещение курсора, поиск начинается заново и
то что под курсором не пропускается (как при нажатии F7).
Странное поведение поиска F7/Shift-F7 в редактировании
2useven10, в предыдущих версиях Far работало логично и корректно. Зачем делать поиск в том, что я (любой другой) только что вставил? Тот, кто вставляет текст, обычно знает что вставляет (в случае в CRLF вообще ситуация самая простая), и в 99.(9)% случаев требуется продолжение поиска в неизмененной части уже после найденного.
Специально после написанного перепроверил, может мне померещилось и я все эти годы просто не замечал - но нет, поставил Far2 нескольких сборок, 1.75 - везде работает как и ожидается, а в Far3 - вот так коряво. Да, именно коряво.
Специально после написанного перепроверил, может мне померещилось и я все эти годы просто не замечал - но нет, поставил Far2 нескольких сборок, 1.75 - везде работает как и ожидается, а в Far3 - вот так коряво. Да, именно коряво.
Странное поведение поиска F7/Shift-F7 в редактировании
Почему бы просто не сделать замену "y" -> "<новая_строка>y"? Если что - символ <новая_строка> вводится при помощи последовательности Ctrl+Q, Enter.
Странное поведение поиска F7/Shift-F7 в редактировании
dest
'только что вставил' и большая часть выступления вообще не в кассу.
Речь идёт только о том пропускается ли текст который начинается точно под курсором при Shift-F7.
Если честно, я не помню, чтобы это менялось специально, может и баг...
'только что вставил' и большая часть выступления вообще не в кассу.
Речь идёт только о том пропускается ли текст который начинается точно под курсором при Shift-F7.
Если честно, я не помню, чтобы это менялось специально, может и баг...
-
- Posts: 6839
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
Странное поведение поиска F7/Shift-F7 в редактировании
Это изменилось между 3861 и 3867, предположительно в 3862.
- DrKnS
- Posts: 6114
- Joined: Thu 04 Aug, 2005 06:44
- Location: Kyiv
- Has thanked: 12 times
- Been thanked: 426 times
Странное поведение поиска F7/Shift-F7 в редактировании
Не намеренно, да.
Но и к текущему поведению у меня, например, претензий нет.
Корректный пропуск уже найденного фрагмента возможен только в том случае, когда в промежутке пользователь текст руками не трогал.
Потому что если трогал - выяснить, что же именно он там наменял и откуда теперь надо искать - нетривиальная задача.
Но и к текущему поведению у меня, например, претензий нет.
Корректный пропуск уже найденного фрагмента возможен только в том случае, когда в промежутке пользователь текст руками не трогал.
Потому что если трогал - выяснить, что же именно он там наменял и откуда теперь надо искать - нетривиальная задача.
Странное поведение поиска F7/Shift-F7 в редактировании
Imho, не надо ничего выяснять.
Если трактовать Shift-F7 как найти следующее совпадение, то независимо от того что у нас под курсором,
на месте можно остаться только если следующего совпадения, не учитывая текущую позицию, нет.
Если трактовать Shift-F7 как найти следующее совпадение, то независимо от того что у нас под курсором,
на месте можно остаться только если следующего совпадения, не учитывая текущую позицию, нет.
- DrKnS
- Posts: 6114
- Joined: Thu 04 Aug, 2005 06:44
- Location: Kyiv
- Has thanked: 12 times
- Been thanked: 426 times
Странное поведение поиска F7/Shift-F7 в редактировании
Ок, опиши, что делать в следующих случаях:
- удалили/добавили целое количество строк выше текущей строки
- удалили/добавили целое количество строк выше и часть текущей строки слева
- удалили/добавили нецелое количество строк выше и часть текущей строки слева, остаток перенесся на предыдущую/следующую строку
- удалили/добавили символы слева
- удалили целое количество строк выше, включая текущую строку
- удалили часть текущей строки слева, включая текущую позицию
P.S. После шаманства с текстом курсор могли хаотично перемещать, могли не меремещать, могли делать undo и redo.
P.P.S. Всё вышеперечисленное - для обоих состояний опции "Cursor at end".
Или это всё баловство и плясать надо не от последней найденной позиции, а тупо от курсора?
- удалили/добавили целое количество строк выше текущей строки
- удалили/добавили целое количество строк выше и часть текущей строки слева
- удалили/добавили нецелое количество строк выше и часть текущей строки слева, остаток перенесся на предыдущую/следующую строку
- удалили/добавили символы слева
- удалили целое количество строк выше, включая текущую строку
- удалили часть текущей строки слева, включая текущую позицию
P.S. После шаманства с текстом курсор могли хаотично перемещать, могли не меремещать, могли делать undo и redo.
P.P.S. Всё вышеперечисленное - для обоих состояний опции "Cursor at end".
Или это всё баловство и плясать надо не от последней найденной позиции, а тупо от курсора?
Странное поведение поиска F7/Shift-F7 в редактировании
Всё как в предыдущем посте. Шаманства с текстом не имеют значения.
Имеет значение текущее положение курсора, следующее совпаденипе не должно начинаться с текущей позиции.
Курсор за концом текущей строки == курсор перед началом следующей строки, т.е. первое следующее совпадение может
быть в начале следующей строки.
Имеет значение текущее положение курсора, следующее совпаденипе не должно начинаться с текущей позиции.
Курсор за концом текущей строки == курсор перед началом следующей строки, т.е. первое следующее совпадение может
быть в начале следующей строки.
- DrKnS
- Posts: 6114
- Joined: Thu 04 Aug, 2005 06:44
- Location: Kyiv
- Has thanked: 12 times
- Been thanked: 426 times
Странное поведение поиска F7/Shift-F7 в редактировании
Я немного о другом. В зависимости от настроек, поиск может ставить курсор так или так. В первом случае продолжать надо со следующей, во втором - с текущей, иначе в строке "foofoo" второй foo не найдёшь.Курсор за концом текущей строки == курсор перед началом следующей строки
Кстати, ещё есть обратный поиск.
Странное поведение поиска F7/Shift-F7 в редактировании
Для так_ просто стартовая позиция поиска смещается на длину искомой строки назад от курсора.
С обратным поиском всё симметрично. собственно ведь вся логика поиска уже есть. Надо только не сбрасывать
признак 'продолжения' поиска, так будто курсор попал в текущую позицию в результате предыдущего поиска
(в начале или после найденного фрагмента), даже если его переместили туда руками или изменили найденный текст.
С обратным поиском всё симметрично. собственно ведь вся логика поиска уже есть. Надо только не сбрасывать
признак 'продолжения' поиска, так будто курсор попал в текущую позицию в результате предыдущего поиска
(в начале или после найденного фрагмента), даже если его переместили туда руками или изменили найденный текст.