Автофильтр вместо быстрого поиска

Здесь выкладываются готовые к использованию макросы и скрипты.
User avatar
John Doe
Бюрократ
Posts: 13402
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 55 times
Been thanked: 358 times

Автофильтр вместо быстрого поиска

Post by John Doe »

Предлагаемый набор макросов реализует в панелях автофильтр, применяющийся динамически, по мере набора текста.
В качестве поля ввода используется панель Быстрого поиска (Search).
Автофильтр может использоваться как вместо Быстрого поиска, так и независимо от него.

Использование:
  • Клавиша активации: Alt (одиночное нажатие) в панелях — открывает панельку автофильтра.
    — Если в активной панели в настоящий момент не установлен фильтр, то подставляется маска *.
    — Если панель уже отфильтрована, то подставляется строка активного фильтра (по возможности: ).
  • По умолчанию действия левой и правой клавиши несколько отличаются:
    • LAlt запускает автофильтр в "немодальном" режиме, удобном для использования вместо Быстрого поиска:
      NB! При закрытии панельки (по Esc, или после выполнения какого-либо действия) фильтр панели сразу снимается.
    • RAlt запускает автофильтр в "постоянном" режиме, т.е. фильтр панели панели не сбросится до тех пор, пока пользователь не снимет его явно.
      NB! Для быстрого снятия фильтра достаточно нажать Esc в панелях.
    • Любое из действий (или оба) можно переназначить на другую комбинацию клавиш:
  • В панельке автофильтра действуют те же клавиши, что и при Быстром поиске, в частности:
    Большинство остальных клавиш передаются в панели, выполняя соответствующие действия в панелях, при этом панелька автофильтра закрывается.
    NB: есть возможность в options задать список клавиш, которые не будут закрывать автофильтр:
Дополнительно:

Credits:

Требования: FAR 3.0 build >= 5416
Attachments
PanelAutoFilter.lua
v2.9.3
(10.76 KiB) Downloaded 331 times
Last edited by John Doe on Wed 10 Jul, 2019 08:50, edited 1 time in total.
User avatar
Xerox
Posts: 395
Joined: Sun 20 Oct, 2019 15:50
Has thanked: 354 times
Been thanked: 9 times

Автофильтр вместо быстрого поиска

Post by Xerox »

Latest post of the previous page:

Я так понял тут эмулируeтся "Folder Panel Filter"
Неплохо, но это как лечить зубы с другого конца туловища, имхо .
T.е. - круто, и за неимением лучшего выбора - очень даже круто.

А может быть лучшим выбором могло бы быть:

1.) запоминание элементов панели, как тупо визуальных элементов, - DlgItems or whatever
2.) при задании/изменении фильтра - выводим список соответствующих элементов
3.) При отмене фильтра - вернуть то что было изначально на место, или просто обновить панель

предыстория вопроса -
Я хотел найти что-то подобное стандартному замечательному Ctrl+Alt+F для файловых панелей,
и/или любых другиих панелей где нет Ctrl+Alt+F.
Cтал искать и нашел этот скрипт.
по функционалу кажется что близко, но реализация, как мне кажется какая-то грустная,
- ломает другую функциональность, имеет ограничения.

А хотелось бы что-то до ужаса простое и удобное как Ctrl+Alt+F для файловых панелей
Который есть кажется что везде, кроме, почему-то, файловых панелей.

Кто-нибудь может обьяснить в чем причина вышеизложенного, и/или в чем я не прав?
Last edited by Xerox on Mon 02 Dec, 2019 18:39, edited 2 times in total.
User avatar
zg
zero-gravity
Posts: 5911
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 168 times
Contact:

Автофильтр вместо быстрого поиска

Post by zg »

Xerox wrote: Mon 02 Dec, 2019 18:23Кто-нибудь может обьяснить в чем причина вышеизложенного, и/или в чем я не прав?
никто не сделал.
User avatar
John Doe
Бюрократ
Posts: 13402
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 55 times
Been thanked: 358 times

Автофильтр вместо быстрого поиска

Post by John Doe »

Xerox wrote: Mon 02 Dec, 2019 18:23 Я так понял тут эмулируeтся "Folder Panel Filter"
А что это?
Xerox wrote: Mon 02 Dec, 2019 18:23 - ломает другую функциональность, имеет ограничения.
Какие ограничения вас гнетут, и что именно у вас сломалось?
User avatar
Xerox
Posts: 395
Joined: Sun 20 Oct, 2019 15:50
Has thanked: 354 times
Been thanked: 9 times

Автофильтр вместо быстрого поиска

Post by Xerox »

John Doe wrote: Tue 03 Dec, 2019 08:09 Xerox wrote: ↑Mon 02 Dec, 2019 20:23
Я так понял тут эмулируeтся "Folder Panel Filter"
А что это?
это, не?
User avatar
Xerox
Posts: 395
Joined: Sun 20 Oct, 2019 15:50
Has thanked: 354 times
Been thanked: 9 times

Автофильтр вместо быстрого поиска

Post by Xerox »

John Doe, Если ничего не ломается, то зачем столько настроек?
Может все гладко работает, я не пробовал, но смущает количество вариантов.
Вот у людей цвет на место не возвращается например, что-то еще у людей не так.
А хочется просто нажать Ctr+Alt+F, чего-то написать, или не писать вовсе.
Нажал Cancel - и все вернулось як и було.
возможно этот скрипт дает больше возможностей чем Ctr+Alt+F, да,
но не знаю зачем мне нужно просто отфилтровать элементы,
как я это делаю везде (история, меню, итд).
Ну и это, файл получился весом в 10КБ, внушительно.
И мне кажется пока, что фильтровать визуальные элементы поместится в 1КБ
Вес скрипта - это не самоцель конечно, но я обьясняю просто свои непонятки.
А так я может быть и не прав, и можно встретить какие-то экстра проблемы при фильрации элементов.
Я пока не знаю, хочу попробовать это наваять в принципе,
и поэтому тут спрашиваю без каких либо плохих намерений опытных людей
вопросы чисто технические, сам этот ваш скрипт не пробовал пока, каюсь
Last edited by Xerox on Tue 03 Dec, 2019 19:04, edited 1 time in total.
Shmuel
Posts: 6619
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 32 times
Been thanked: 465 times

Автофильтр вместо быстрого поиска

Post by Shmuel »

Xerox, я тоже не пробовал сабжевый скрипт, и именно по этой причине не считаю себя вправе ни обсуждать его, ни тем более критиковать. Иначе это просто загрязнение форума.
User avatar
John Doe
Бюрократ
Posts: 13402
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 55 times
Been thanked: 358 times

Автофильтр вместо быстрого поиска

Post by John Doe »

Xerox wrote: Tue 03 Dec, 2019 19:03 И мне кажется пока, что фильтровать визуальные элементы поместится в 1КБ
Сначала и помещалось viewtopic.php?p=117974#p117974.
Однако, за неимением прямого апи скрипт под капотом использует клавиатурные нажатия, что для бесшовной работы требует ряд костылей.

В шапке под спойлером приведён список альтернативных реализаций сходной функциональности.
Я использую своё поскольку всё испробованное показалось менее удобно (требует лишний нажатий, и т.п.)

Моя собственная версия (в части реализации) оставляет желать лучшего, и были мысли по переделке, но.. Текущее поведение вполне устраивает.
User avatar
HaRT
Moderator
Posts: 10262
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 166 times
Been thanked: 308 times

Автофильтр вместо быстрого поиска

Post by HaRT »

В версии 2.9.3 обнаружилось неприятное (ошибочное?) поведение: на одной панели задаём быстрый фильтр — рамка меняет цвет (удобно), на другой тоже задаём быстрый фильтр — цвет рамки остаётся прежним (логично); после этого в одной из панелей нажимаем Esc — фильтр на ней отменяется (ожидаемо), но при этом и цвет рамки возвращается к исходному, несмотря на то что на другой-то панели быстрый фильтр по-прежнему остаётся. Хотелось бы, чтобы цвет рамки восстанавливался только тогда, когда быстрого фильтра уже нет ни на одной панели.

Также иногда сталкиваюсь с тем, что цвет рамки меняется, признак фильтрации (звёздочка у режима сортировки) появляется, а сам фильтр не применяется. Но надёжно воспроизвести пока не умею.

Windows 10 x64; Far Manager, version 3.0.5961.0 x86
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
Alexander84
Posts: 128
Joined: Fri 01 May, 2009 06:38
Has thanked: 14 times
Been thanked: 2 times

Автофильтр вместо быстрого поиска

Post by Alexander84 »

Ребят, а можно как-то сделать, чтобы порядок вводимых слов не имел значения?
Например, чтобы по запросу

Code: Select all

*network*autostart*
получить ту же выборку, что и

Code: Select all

*autostart*network*
У меня подобными словами (тегами) подписаны некоторые папки.
Скажем, "APPS\Firefox __ network" и "APPS\DNSCrypt __ network autostart".
Иногда слова не идут друг за другом, а иногда ищешь одно, потом уточняешь другим.
Пока выручает внешняя поисковая программа Everything, но вдруг и здесь это возможно.
Last edited by Alexander84 on Sun 20 Nov, 2022 20:27, edited 8 times in total.
User avatar
citRiks
Posts: 1712
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 586 times
Been thanked: 99 times

Автофильтр вместо быстрого поиска

Post by citRiks »

Alexander84, Технически можно, толькоэто будет зверское усложнение вместо существующих пару сотен строк. Я собираюсь это сделать, однако это прошло уже много лет как я все собираюсь :)
User avatar
goran
Posts: 8
Joined: Thu 19 May, 2016 23:07
Location: Odessa

Автофильтр вместо быстрого поиска

Post by goran »

Alexander84, Я категорически против такого поведения, как описано вами. Маска должна вести себя как маска, а не как попало. Если добавлять возможность указывать несколько масок, для них можно придумать разделитель, гарантировано неиспользуемый в именах файлов, например "/".

Что же касается возможности поиска или выделения файлов/папок по подобному условию (наличие всех заданных слов или одного из слов), то это доступно с тех пор, как Far стал поддерживать маски, заданные с помощью PCRE (регулярных выражений).

Маску, включающую в себя имена, содержащие любую из подстрок "autostart" или "network", можо задать так:

Code: Select all

/autostart|network/
Маску, включающую в себя имена, содержащие каждую из подстрок "autostart" и "network", можо задать так:

Code: Select all

/(?=.*autostart)(?=.*network)/
В самом Far PCRE-совместимые регулярные выражения можно использовать везде, где предполагается ввод одной или нескольких масок файлов (поиск по Alt-F7, Select/Deselect и так далее). Насчёт плагинов и прочего точно сказать не могу.
User avatar
HaRT
Moderator
Posts: 10262
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 166 times
Been thanked: 308 times

Автофильтр вместо быстрого поиска

Post by HaRT »

goran wrote: Wed 23 Nov, 2022 07:07 доступно с тех пор, как Far стал поддерживать маски, заданные с помощью PCRE (регулярных выражений)
Очень верное замечание, притом Фар предоставляет функцию для разбора масок плагинам.
goran wrote: Wed 23 Nov, 2022 07:07 Если добавлять возможность указывать несколько масок, для них можно придумать разделитель, гарантировано неиспользуемый в именах файлов, например "/".
Зачем выдумывать новый синтаксис, когда в Фаре он уже давным-давно устоялся?! В качестве разделителей используются запятая и точка с запятой, а если они нужны в маске, то используются двойные кавычки.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
Alexander84
Posts: 128
Joined: Fri 01 May, 2009 06:38
Has thanked: 14 times
Been thanked: 2 times

Автофильтр вместо быстрого поиска

Post by Alexander84 »

goran
Я не предлагаю менять устоявшееся поведение масок, а спрашиваю, можно ли в этом скрипте автофильтра
путём неведомого мне пока синтаксиса, горячей клавиши или допиливания дополнительной опции, находить
папки и файлы, м-м, более очевидным образом. Т.е. на вызывать диалог поиска по Alt+F7, где сочинять
продвинутые регулярные выражения, проверять, как отмечены галки и сколь широка зона поиска, а просто
вводить в любом порядке кусочки слов, из которых состоит имя папок и файлов. Сегодня такой поиск есть
в браузерах (когда нужно порыться в табах, закладках, истории), есть в текстовых редакторах типа Obsidian,
есть в упомянутой программе Everything. К такому менее хлопотному поиску быстро привыкаешь.

Image

HaRT
Вероятно, я что-то недопонял, но добавить здесь в маску запятую или точку с запятой не выходит.

Image
Last edited by Alexander84 on Fri 25 Nov, 2022 11:24, edited 6 times in total.
User avatar
HaRT
Moderator
Posts: 10262
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 166 times
Been thanked: 308 times

Автофильтр вместо быстрого поиска

Post by HaRT »

Alexander84 wrote: Fri 25 Nov, 2022 11:18 добавить здесь в маску запятую или точку с запятой не выходит
Да, к сожалению, тут, оказывается, не ввести ни несколько масок, ни регулярное выражение.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
buniak_a_h
Posts: 3688
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 188 times
Been thanked: 547 times
Contact:

Автофильтр вместо быстрого поиска

Post by buniak_a_h »

Alexander84 wrote: Fri 25 Nov, 2022 11:18 добавить здесь в маску запятую или точку с запятой не выходит
Правильно ли я понял, что этот снимок - поле ввода быстрого поиска? Если да, то:
  • о разделителях HaRT писал применительно к полям ввода маски (отметка, поиск по ALt+F7, фильтр). В "быстром поиске" это - вообще не маска, а «Имя файла». Цитата из хелпа:
    набирайте имя требуемого файла
    ;
  • в том же хелпе написано:
    Кроме обычных символов в имени файла также можно использовать символы ‹*› и ‹?›
    .
Хотя, возможно, это не Quick Search, а поле ввода маски для автофильтра - тогда извините за неуместный комментарий. Я им не пользуюсь…
Last edited by buniak_a_h on Fri 25 Nov, 2022 17:39, edited 1 time in total.
User avatar
HaRT
Moderator
Posts: 10262
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 166 times
Been thanked: 308 times

Автофильтр вместо быстрого поиска

Post by HaRT »

buniak_a_h wrote: Fri 25 Nov, 2022 17:38 В "быстром поиске" это - вообще не маска
С учётом звёздочки и вопросика как раз маска (wildcard pattern) в её базовом ДОСовом понимании. Просто, вероятно, никто не прикрутил в этом месте «расширенные» фаровские маски.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Post Reply

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