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

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

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

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 811 times
Last edited by John Doe on Wed 10 Jul, 2019 08:50, edited 1 time in total.
User avatar
HaRT
Moderator
Posts: 11497
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 274 times
Been thanked: 418 times

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

Post by HaRT »

Latest post of the previous page:

buniak_a_h wrote: Fri 25 Nov, 2022 17:38 В "быстром поиске" это - вообще не маска
С учётом звёздочки и вопросика как раз маска (wildcard pattern) в её базовом ДОСовом понимании. Просто, вероятно, никто не прикрутил в этом месте «расширенные» фаровские маски.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
goran
Posts: 11
Joined: Thu 19 May, 2016 23:07
Location: Odessa
Has thanked: 1 time
Been thanked: 1 time

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

Post by goran »

HaRT wrote: Fri 25 Nov, 2022 13:45 Да, к сожалению, тут, оказывается, не ввести ни несколько масок, ни регулярное выражение.
И двойную кавычку тоже, почему я и предложил слеш как разделитель нескольких масок (чтобы ввод слеша обозначал, что дальше начнётся ввод следующей маски), поскольку запятая или точка с запятой могут быть частью имени файла. Хотя конечно с учётом того, что в стандартном синтаксисе слешами выделяются регулярные выражения, решение так себе. Но как это можно переделать под стандартный синтаксис с сохранением с сохранением как удобства использования, так и возможности использования запятой или точки с запяток в качестве имени файла, я честно говоря плохо себе представляю. Начинать ввод не с *, а с "*", с позиционированием курсора после звёздочки,как вариант? Такое можно себе представить, и дальше пофантазировать, как должны вести себя как UI, так и логика обработки не до конца введенных масок (у меня даже за несколько минут обдумывания появились некоторые идеи по этому поводу), но это действительно будет радикальное усложнение существующего кода.
HaRT wrote: Fri 25 Nov, 2022 18:37 С учётом звёздочки и вопросика как раз маска (wildcard pattern) в её базовом ДОСовом понимании.
Скажем так, почти маска, с учётом того, что в конце всегда находится "неявная" звёздочка.
Last edited by goran on Sat 26 Nov, 2022 06:01, edited 3 times in total.
User avatar
HaRT
Moderator
Posts: 11497
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 274 times
Been thanked: 418 times

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

Post by HaRT »

goran wrote: Sat 26 Nov, 2022 05:55 в стандартном синтаксисе слешами выделяются регулярные выражения
Более того,
HaRT wrote: Fri 25 Nov, 2022 13:50 На странице Справки про быстрый поиск файлов в панели (@FastFind) не указано, что если в конце маски дописать прямой (/) или обратный (\) слэш, то поиск и перебор будут ограничены директориями.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
Alexander84
Posts: 165
Joined: Fri 01 May, 2009 06:38
Has thanked: 22 times
Been thanked: 3 times

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

Post by Alexander84 »

Фар 3.0.6675, скрипт Panel.AutoFilter.lua 2.9.3 показывает теперь ошибку при поиске.



Может быть, это связано с недавним изменением?
drkns 2026-03-27 20:33:11+00:00 - build 6669
1. Add upper limit to API struct size checks to detect uninitialized memory.
This means that some buggy plugins might suddenly stop working. C'est la vie.
Shmuel
Posts: 7275
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 49 times
Been thanked: 640 times

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

Post by Shmuel »

Alexander84,
Сейчас попробовал, скачал версию 2.9.3.
  1. Ошибка при поиске у меня не возникает
  2. У вас на скриншоте указана ошибка на строке 47, но там нету "band", там только "end". Видимо у вас модифицированная версия скрипта.
Shmuel
Posts: 7275
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 49 times
Been thanked: 640 times

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

Post by Shmuel »

Alexander84,
Ошибку воспроизвёл, она имеет место, начиная с билда 6673.
User avatar
John Doe
Бюрократ
Posts: 14635
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 94 times
Been thanked: 526 times
Contact:

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

Post by John Doe »

Строку 85 надо заменить на

Code: Select all

local MaskPos,AttrPos,DirsPos = 6,30,9
https://t.me/FarManager — Telegram чат
User avatar
SUSim
Posts: 1738
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 15 times
Been thanked: 45 times

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

Post by SUSim »

а чего шапку не поправили?
SimSU ··· ·· -- ··· ··-
reguspregus
Posts: 11
Joined: Sat 24 Jul, 2021 00:33

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

Post by reguspregus »

John Doe wrote: Sat 11 Apr, 2026 18:35 Строку 85 надо заменить на

local MaskPos,AttrPos,DirsPos = 6,30,9
Строку 84, если быть точным. Попробовал, да, помогло, макрос больше не рушится.
Дмитрий Подшиваленко
Posts: 28
Joined: Mon 03 Sep, 2012 09:30
Location: Москва
Has thanked: 2 times

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

Post by Дмитрий Подшиваленко »

Макрос супер!!
А можно его немного модифицировать, чтобы он не срабатывал по Alt+Tab?
User avatar
HaRT
Moderator
Posts: 11497
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 274 times
Been thanked: 418 times

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

Post by HaRT »

Дмитрий Подшиваленко wrote: Thu 06 Aug, 2026 19:18 чтобы он не срабатывал по Alt+Tab?
У меня, например, и не срабатывает. У вас часом никакая сторонняя софтина в системе не вмешивается в обработку Alt?
Фар есть инструмент, а не нянька. © 2009 DrKnS
Дмитрий Подшиваленко
Posts: 28
Joined: Mon 03 Sep, 2012 09:30
Location: Москва
Has thanked: 2 times

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

Post by Дмитрий Подшиваленко »

Да вроде нет.
У меня и стандартный макрос AltSearch.lua срабатывал на Alt+Tab, пока я не нашёл его модификацию, которая не срабатывает по Alt+Tab.
В макросе есть что-то про skipAltTab, как и в модифицированном AltSearch.lua, но всё равно срабатывает.
Last edited by Дмитрий Подшиваленко on Thu 06 Aug, 2026 20:07, edited 4 times in total.
User avatar
John Doe
Бюрократ
Posts: 14635
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 94 times
Been thanked: 526 times
Contact:

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

Post by John Doe »

Windows XP?
https://t.me/FarManager — Telegram чат
Дмитрий Подшиваленко
Posts: 28
Joined: Mon 03 Sep, 2012 09:30
Location: Москва
Has thanked: 2 times

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

Post by Дмитрий Подшиваленко »

John Doe wrote: Thu 06 Aug, 2026 23:17Windows XP?
Windows 7 и Windows 10. Проявляется на обеих, только что проверил. Лишних сторонних софтин, вмешивающихся в обработку Alt, нет ни на одной.
User avatar
John Doe
Бюрократ
Posts: 14635
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 94 times
Been thanked: 526 times
Contact:

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

Post by John Doe »

Без других макросов и плагинов то же?
Детальнее опишите что делаете, как воспроизвести.
https://t.me/FarManager — Telegram чат
Дмитрий Подшиваленко
Posts: 28
Joined: Mon 03 Sep, 2012 09:30
Location: Москва
Has thanked: 2 times

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

Post by Дмитрий Подшиваленко »

John Doe wrote: Fri 07 Aug, 2026 08:20 Без других макросов и плагинов то же?
Детальнее опишите что делаете, как воспроизвести
Да. Сейчас скачал свежую сборку 3.0.6725, распаковал её в отдельную папку, включил режим портабельности для удобства (UseSystemProfiles=0), закинул этот единственный макрос и запустил Far.
По нажатию LALT в активном Far появляется окошко фильтра Search со *. При нажатии Alt+Tab винда переключается на другое окно, а в неактивном окне с Far появляется окошко фильтра Search со *. Единственное что было изменено в Win10 - это поведение по Alt+Tab. Оно сделано как в Win7 - быстрое переключение на предыдущее активное окно изменением одного значения в реестре:

Code: Select all

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer]
"AltTabSettings"=dword:00000001
Но, собственно, на Win7, где поведение по Alt+Tab не менялось, Far тоже ведёт себя аналогично.
Может как раз такое поведение по Alt+Tab не учитывается в скрипте? Но это стандартное поведение для Win7.
Last edited by Дмитрий Подшиваленко on Fri 07 Aug, 2026 09:47, edited 2 times in total.
Post Reply

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