Введённый текст ищется сразу по мере его набора, и найденное индицируется выделением.
Кроме того подсвечиваются все вхождения искомой строки, и подсветка остаётся после
завершения поиска.
Режим инкрементального поиска активируется одним из способов:
RAlt(одиночное нажатие/отпускание)
Если в текущей строке есть выделенный текст — он подхватывается.
Если ничего не введено, то можно вернуть строку из предыдущего поиска, нажавBS.RCtrl+RAlt/RCtrl+RAlt- при выделенном тексте: ищет предыдущее / или следующее его вхождение;
- если выделения нет - продолжает предыдущий поиск с текущего места назад / или вперёд.
Активный режим инкрементального поиска индицируется в строке статуса.
- Нажатие какой-либо алфавитно-цифровой (или символьной) клавиши добавляет символ к искомой строке.
AltRight— расширяет выделение до конца слова. - Нажатие любой функциональной клавиши (кроме перечисленных тут) отключает режим поиска,
клавиша передаётся на обработку фару.
(Это касается клавиш управления курсором, и всех клавиш с модификаторамиCtrl/Alt/Shift). - Для прекращения поиска можно также воспользоваться повторным нажатием
RAlt. Esc— прекращает поиск и восстанавливает исходную позицию.BS— удалить последний введённый символ.
При пустой строке: восстановить предыдущую строку.CtrlBS— очистить строку поиска.ShiftIns/CtrlV— вставить строку из буфера обмена.RCtrl|ShiftF7|F3|Enter— найти следующее вхождение строки.LCtrl|AltF7|ShiftF3|ShiftEnter— найти предыдущее вхождение строки.CtrlA: открыть диалог с результатами поиска всех вхождений.
При поиске доступны опции, состояние которых индицируется в строке статуса:
Alt+Option
R: Reverse - поиск в обратном направлении.
Q: ExtraQuick - каждое нажатие не только прибавляет символ к строке поиска, но и ищет следующее вхождение.
C: CaseSensitive - чуствительность к регистру.
W: WholeWords - только целые слова.
В начале скрипта в переменной
options можно задать ряд параметров:- Клавиша активации:
RAlt/LAlt. keepHighlight: сохранять ли подсветку при выходе из режима инкрементного поиска.HighlightMinLen: все вхождения искомой подстроки подсвечиваются если её длина достигает указанного значения.
Для более коротких строк подсвечиваются только целые слова, и при полном совпадении регистра.CtrlA: диалог с результатами поиска всех вхождений можно использовать штатныйfar, либо плагиновый -
lfsearch/editfind.FoundMargin: можно задать отступ от границы экрана при позиционирования найденного (если оно за пределами текущего экрана).search: для опций поиска можно задать начальные значения, имеет смысл дляExtraQuick.useBM: установка закладки перед началом поиска (при этом поEscпозиция не восстанавливается).
Начат когда-то как развитие скрипта Быстрый поиск в редакторе (автор ccaid), откуда и позаимствована идея эксплуатации плагинов (а впоследствии и штатного поиска).
Исходная идея была прекрасной в своей простоте, однако по мере обрастания возможностями объём вспомогательного кода дорос до степени, сравнимой с самостоятельной реализацией всех функций, которую текущая версия (3) и реализует.
Разумеется сама идея инкрементального поиска далеко не нова:
- Far 1:
- Far 2:
- Far 3:
Актуальная версия:
raw | zip