IncSearch — быстрый поиск в редакторе

Здесь выкладываются готовые к использованию макросы и скрипты.
User avatar
John Doe
Бюрократ
Posts: 14580
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

IncSearch — быстрый поиск в редакторе

Post by John Doe »

Инкрементальный поиск — это поиск в редакторе без использования диалогового окна.
Введённый текст ищется сразу по мере его набора, и найденное индицируется выделением.
Кроме того подсвечиваются все вхождения искомой строки, и подсветка остаётся после
завершения поиска.



Актуальная версия:
raw | zip
User avatar
John Doe
Бюрократ
Posts: 14580
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

IncSearch — быстрый поиск в редакторе

Post by John Doe »

Latest post of the previous page:

v3-alpha

Скрипт переписан полностью, и теперь реализует все функции самостоятельно, не паразитируя на плагинах или встроенной функции поиска.
Радикальных изменений функциональности нет, но улучшено множество мелких деталей.

Версия alpha потому что за бортом остался "немодальный" поиск в стиле плагина Leap.
Уже несколько лет я им вообще не пользовался по причине того, что в раскладках клавиатуры у меня завёлся AltGr, и забрал правый Alt.

Планирую доделать и немодальный поиск, но это требует нового подхода и соответственно кучу времени на отладку.
https://t.me/FarManager — Telegram чат
User avatar
John Doe
Бюрократ
Posts: 14580
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

IncSearch — быстрый поиск в редакторе

Post by John Doe »

Изменения забыл упомянуть:
  • Строка поиска теперь эквивалентна текущему выделению, и невозможно ввести то, чего в редакторе нет.
    Раньше позволялось ввести один несуществующий символ, и соответственно для продолжения поиска его требовалось удалять.
  • Для того чтобы при достижении конца "зациклить" поиск, т.е. продолжить его с начала (и наоборот), надо удерживать клавишу - буквенную, или продолжающую поиск.
https://t.me/FarManager — Telegram чат
User avatar
HaRT
Moderator
Posts: 11454
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 270 times
Been thanked: 417 times

IncSearch — быстрый поиск в редакторе

Post by HaRT »

John Doe wrote: Thu 29 May, 2025 18:16 v3-alpha

Скрипт переписан полностью
Буду сюда постепенно записывать свои «жалобы и предложения» (Фар 3.0.6480.0 x86).
0. Хорошо бы придать скрипту более гранулярный номер версии, чтобы можно было более предметно обсуждать изменения.
1. #C#: CaseSensitive - чуствительность к регистру. — опечатка, пропущена «в» после «чу».
2. Нестабильно, но часто, если активизировать поиск (неважно, по AltGr или по LAlt) и нажать Esc, то поиск не завершается.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
John Doe
Бюрократ
Posts: 14580
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

IncSearch — быстрый поиск в редакторе

Post by John Doe »

John Doe wrote: Mon 04 Aug, 2014 23:58 Нестабильно, но часто, если активизировать поиск (неважно, по AltGr или по LAlt) и нажать Esc, то поиск не завершается.
Неожиданно..
Между включением и выключением какие-то действия есть?

Вообще поиск задуман лишь отчасти модальным, и выход по ESC служит для того чтобы вернуться в исходное положение, если ничего не нашли.

Насчёт версии - гранулярность появится по мере внесения изменений. Ну и на гитхабе отображается и хэш, и ревизия.
https://t.me/FarManager — Telegram чат
User avatar
HaRT
Moderator
Posts: 11454
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 270 times
Been thanked: 417 times

IncSearch — быстрый поиск в редакторе

Post by HaRT »

John Doe wrote: Thu 29 May, 2025 23:04 Между включением и выключением какие-то действия есть?
Нет, я проверял в простейшем сценарии: активировать, немного подождать, выйти.
Кстати, сейчас специально проверил без прочих плагинов и скриптов — воспроизводится.
John Doe wrote: Thu 29 May, 2025 23:04 на гитхабе отображается и хэш, и ревизия
Я правильно понимаю, что и этот скрипт, и его предыдущая инкарнация (v2) не лежат в каком-то большем репозитории, а представлены каждый «репозиторием одного файла»?
Last edited by HaRT on Thu 29 May, 2025 23:19, edited 1 time in total.
Reason: Добавлена часть про GitHub
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
John Doe
Бюрократ
Posts: 14580
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

IncSearch — быстрый поиск в редакторе

Post by John Doe »

HaRT wrote: Кстати, сейчас специально проверил без прочих плагинов и скриптов — воспроизводится.
Видимо что-то в последний момент поломал. Буду смотреть.
HaRT wrote: Thu 29 May, 2025 23:12 представлены каждый «репозиторием одного файла»?
Так и есть.
https://t.me/FarManager — Telegram чат
User avatar
HaRT
Moderator
Posts: 11454
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 270 times
Been thanked: 417 times

IncSearch — быстрый поиск в редакторе

Post by HaRT »

John Doe wrote: Thu 29 May, 2025 18:26 Для того чтобы при достижении конца "зациклить" поиск, т.е. продолжить его с начала (и наоборот), надо удерживать клавишу - буквенную, или продолжающую поиск.
Этого, к сожалению, нет во встроенной Справке скрипта. (Кстати, предлагаю ради общности заменить «буквенную» на «ввода символа» или просто «символа».)
И это не срабатывает для LCtrl/RCtrl (для остальных сочетаний продолжения назад/вперёд срабатывает).

P.S. Уже сейчас понятно, что скрипт получился куда удобнее и нагляднее, чем прежний. Спасибо!
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
HaRT
Moderator
Posts: 11454
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 270 times
Been thanked: 417 times

IncSearch — быстрый поиск в редакторе

Post by HaRT »

И вопрос-пожелание: сложно ли для пущей заметности сообщение not found показывать инверсным цветом (т.е. взять инверсию обоих цветов либо просто поменять FG и BG местами)? Либо на время показа этого сообщения перекрасить всю строку статуса скрипта, чтобы она визуально «моргнула»?
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
John Doe
Бюрократ
Posts: 14580
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

IncSearch — быстрый поиск в редакторе

Post by John Doe »

Esc исправил, справку добавил.
HaRT wrote: Fri 30 May, 2025 01:38 И это не срабатывает для LCtrl/RCtrl
Срабатывает же.
Но есть нюанс: удержание Ctrl начинает поиск с начала не проверяя что впереди остались вхождения.
Иначе надо мудрить с логикой обработки клавиш, а на практике вряд ли имеет значение.
HaRT wrote: Fri 30 May, 2025 02:21 И вопрос-пожелание: сложно ли для пущей заметности сообщение not found показывать инверсным цветом
Мигнуть строкой статуса можно, но нужно ли?
Ведь неудача при поиске уже и так индицируется и звуком, и возле курсора.
А по замыслу фокус внимания находится как раз у курсора.
https://t.me/FarManager — Telegram чат
User avatar
HaRT
Moderator
Posts: 11454
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 270 times
Been thanked: 417 times

IncSearch — быстрый поиск в редакторе

Post by HaRT »

John Doe wrote: Fri 30 May, 2025 12:13 Esc исправил, справку добавил.
Спасибо!
John Doe wrote: Fri 30 May, 2025 12:13 Срабатывает же.
Хм, у меня-таки не срабатывает: при зажатии визуально ничего не происходит, при отпускании моргает найденное с выделенного на красное и показывается not found. Спишу пока на странности RDP-клиента, постараюсь не забыть проверить, когда буду физически у этой машины. Это не критично, особенно если требуется сильно мудрить.
John Doe wrote: Fri 30 May, 2025 12:13 неудача при поиске уже и так индицируется и звуком, и возле курсора
Убедили, думаю, действительно моргать ещё и строкой статуса незачем.
User avatar
John Doe
Бюрократ
Posts: 14580
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

IncSearch — быстрый поиск в редакторе

Post by John Doe »

HaRT wrote: Fri 30 May, 2025 17:33 Спишу пока на странности RDP-клиента,
Можете запустить readkey и проверить приходят ли события автоповтора при удержании Ctrl.
https://t.me/FarManager — Telegram чат
Volodya
Posts: 324
Joined: Thu 31 Mar, 2005 19:41
Has thanked: 71 times
Been thanked: 2 times

IncSearch — быстрый поиск в редакторе

Post by Volodya »

Ссылки на raw и zip (в первом сообщении) не работающие.
User avatar
John Doe
Бюрократ
Posts: 14580
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

IncSearch — быстрый поиск в редакторе

Post by John Doe »

Спасибо, исправил.
https://t.me/FarManager — Telegram чат
User avatar
John Doe
Бюрократ
Posts: 14580
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

IncSearch — быстрый поиск в редакторе

Post by John Doe »

Исправил ввод AltGr-символов.
https://t.me/FarManager — Telegram чат
User avatar
HaRT
Moderator
Posts: 11454
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 270 times
Been thanked: 417 times

IncSearch — быстрый поиск в редакторе

Post by HaRT »

Почему-то у меня (в Far Manager, version 3.0.6480.0 x86) теперь RCtrl вместо продолжения поиска из него выходит (проверял без прочих плагинов и скриптов). :(
Из изменений (если не считать удаление концевых пробелов) у меня только

Code: Select all

  options:
    Alt:'LAlt'
потому что вместо RAlt у меня на клавиатуре AltGr.

И вопрос: как при такой настройке подружить здешний CtrlLAlt с LCtrlLAlt от HiliteWord, чтобы они не конфликтовали?
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
John Doe
Бюрократ
Posts: 14580
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

IncSearch — быстрый поиск в редакторе

Post by John Doe »

HaRT wrote: Wed 04 Jun, 2025 01:58 теперь RCtrl вместо продолжения поиска из него выходит
Вам придётся выяснять причину у себя, потому что у меня ничего такого не происходит.
Предлагаю сначала посмотреть что происходит в readkey.
HaRT wrote: Wed 04 Jun, 2025 01:58 потому что вместо RAlt у меня на клавиатуре AltGr.
Это поддерживается, смело указывайте RAlt.
HaRT wrote: Wed 04 Jun, 2025 01:58 как при такой настройке подружить здешний CtrlLAlt с LCtrlLAlt от HiliteWord, чтобы они не конфликтовали?
Я думаю добавить HiliteWord в условия отсутствие выделения.
Но надо придумать и что делать в случае когда выделения нет...
Edit: исправил, в обоих скриптах.
https://t.me/FarManager — Telegram чат
Post Reply

Return to “Полезные макросы и скрипты”