Введённый текст ищется сразу по мере его набора, и найденное индицируется выделением.
Кроме того подсвечиваются все вхождения искомой строки, и подсветка остаётся после
завершения поиска.
Режим инкрементального поиска активируется одним из способов:
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