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

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

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

Post by John Doe »

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

Управление:
  • RAlt — включить режим инкрементального поиска.
    Если в текущей строке есть выделенный текст — он подхватывается.
  • BS — удалить последний введённый символ.
    При пустой строке: восстановить предыдущую строку.
  • CtrlBS — очистить строку поиска.
  • ShiftIns/CtrlV — вставить строку из буфера обмена.
  • RCtrl/ShiftF7/F3/Enter — найти следующее вхождение строки.
  • LCtrl/AltF7/ShiftF3/ShiftEnter — найти предыдущее вхождение строки.
  • Нажатие любой алфавитно-цифровой (или символьной) клавиши добавляет символ к искомой строке.
  • Нажатие любой функциональной клавиши отключает режим поиска, клавиша передаётся фару.
    (Это касается клавиш управления курсором, и всех клавиш с модификаторами Ctrl/Alt/Shift).
  • Для прекращения поиска можно также воспользоваться повторным нажатием RAlt.
  • Esc — прекращает поиск и восстанавливает исходную позицию.
  • AltRight — расширяет выделение до конца слова.
Немодальный поиск:
  • Активируется нажатием RAlt+буква (точнее символ слова: \w), или RAltSpace.
    Набирать текст нужно удерживая RAlt.
    При отпускании RAlt поиск завершается.
  • Даже после отпускания вернуться в позицию "до поиска" можно с помощью макроса на RAltBS.
  • Кроме того, поиск можно активировать нажатием RAlt+LCtrl / RAlt+RCtrl.
    В этом случае продолжается предыдущий поиск (назад / вперёд).
  • Доступны те же шорткаты, что и в обычном режиме, за исключением изменения опций.
    Чтобы работал Esc (т.е. Alt-Esc) — можно воспользоваться XKeys.
В данной реализации используются функции встроенного поиска FAR, или функции плагинов LuaFAR Search / EdtFind, если доступны
(можно запретить useLFSearch = false/useEdtFind = false).
Использование указанных плагинов позволяет выделить сразу все вхождения строки в тексте.

Настройка:
  • В начале скрипта в переменной options можно задать умолчания для параметров WholeWords, RegExp, CaseSensitive
    В процессе поиска значения можно изменить шорткатами Alt-W/G/C.
  • Специальный режим поиска: ExtraQuick: каждое нажатие не только прибавляет символ к строке поиска, но и ищет следующее вхождение.
    Активируется параметром ExtraQuick в начале скрипта, или шорткатом Alt-Q.
  • Назначив переменную useBM можно активировать установку закладки при начале поиска (при этом по Esc позиция не восстанавливается)


Актуальная версия:
raw | zip
User avatar
John Doe
Бюрократ
Posts: 13402
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 55 times
Been thanked: 358 times

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

Post by John Doe »

Latest post of the previous page:

Закешировалось видимо. Возьмите тут https://gist.githubusercontent.com/john ... Search.lua
https://t.me/FarManager — Telegram чат
dmitrik
Posts: 76
Joined: Mon 30 Nov, 2009 21:58
Been thanked: 2 times

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

Post by dmitrik »

Я не понимаю логику работы. В тексте есть несколько вхождений строки. Например, слово services. Перехожу в режим быстрого поиска и начинаю набирать. s переводит на первое вхождение в текст этой буквы. Допустим, как раз на первое вхождение services. Ок. Добавляю e. Ожидаю: выделится se в этом же services. Реальность: он перескакивает на следующее вхождение services и уже там выделяет se. И так далее с каждой новой набранной буквой.

Так задумано или это баг?
User avatar
John Doe
Бюрократ
Posts: 13402
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 55 times
Been thanked: 358 times

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

Post by John Doe »

@dmitrik
Чтобы было так как вы ожидаете измените опцию ExtraQuick = false,
https://t.me/FarManager — Telegram чат
dmitrik
Posts: 76
Joined: Mon 30 Nov, 2009 21:58
Been thanked: 2 times

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

Post by dmitrik »

Понял, спасибо.
ccaid
Posts: 902
Joined: Fri 12 Jun, 2009 16:04
Has thanked: 23 times
Been thanked: 6 times

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

Post by ccaid »

John Doe, при использовании плагина LFSearch, если у него выключена установка [ ] Select found text, не удается отключить в скрипте сверхбыстрый поиск: на ввод каждого дополнительного символа продвигаемся на следующее вхождение.
Фар делают добрые люди
User avatar
HaRT
Moderator
Posts: 10332
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 176 times
Been thanked: 313 times

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

Post by HaRT »

В сборке Фара 6096 скрипт перестал работать со встроенным поиском — очевидно, из-за реорганизации диалога. Лечится .
Last edited by HaRT on Tue 24 Jan, 2023 20:40, edited 1 time in total.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Post Reply

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