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

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

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

Post by John Doe »

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

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

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


Актуальная версия: 2.10

DeeZ
Posts: 100
Joined: Sat 20 Mar, 2010 18:48

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

Post by DeeZ »

Latest post of the previous page:

Если при поиске, после очередного символа строка уже не находится - проскакивает окно "не найдено". тут ок. стираем 1 символ, и пробуем поискать следующее вхождени - проскакивает окно не найденно. хотя эта строка уже есть, но плагин ищет еще старую.
Например, открыть файл IncSearch.lua
Поскать s - надет
дописать вторую ss - найдет
sss - выдаст что не найдено.
Удаляем одну S. в строке поиска становится ss. не находит (хотя находил).
Ждем F3 что бы повторить поиск - ошибка.

Если стереть еще одну s и дописать ее снова (что бы опять стало ss) - все работает как надо.

User avatar
John Doe
Бюрократ
Posts: 12829
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 288 times

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

Post by John Doe »

Может быть дело в настройках, но у меня не воспроизводится.
Версия скрипта актуальная?

DeeZ
Posts: 100
Joined: Sat 20 Mar, 2010 18:48

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

Post by DeeZ »

версия последняя. из шапки. FAR 4900

User avatar
John Doe
Бюрократ
Posts: 12829
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 288 times

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

Post by John Doe »

Да, тут баг, проявляется при отсутствии плагина EditFind.

User avatar
John Doe
Бюрократ
Posts: 12829
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 288 times

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

Post by John Doe »

HaRT wrote: однако на то, что находится (разумеется, когда файл содержательный), опция влияния не оказывает
Тут оказалось просто: после редизайна диалога поиска в билде 4473 позиции опций изменились, что в скрипте не учтено.
HaRT wrote: пытаясь изолировать проблему с поиском слэша
Что за проблема-то?
Планирую перевыложить скрипт с накопившимися исправлениями.
Last edited by John Doe on Wed 26 Apr, 2017 08:25, edited 1 time in total.

User avatar
HaRT
Moderator
Posts: 9441
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 105 times
Been thanked: 222 times

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

Post by HaRT »

При использовании встроенного поиска Фара берутся опции Case sensitive, Whole words и Regular expressions, которые выставлены в диалоге поиска, т.е. те, которые были когда-то использованы в предыдущем обычном поиске в этом же редакторе. Я как пользователь их, разумеется, не помню. А сталкиваюсь я с тем, что в результате строка, которая точно есть в файле и которую я набираю по одной букве, просто не находится. :(
Не исправлено ли это часом в неопубликованной версии (новее, чем 2.9)? Если нет, сложно ли при начале инкрементного поиска выставлять эти опции в соответствии с настройками скрипта?
Last edited by HaRT on Wed 23 Aug, 2017 19:36, edited 1 time in total.
Reason: Добавлено упоминание Regular expressions
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
John Doe
Бюрократ
Posts: 12829
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 288 times

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

Post by John Doe »

Посмотрю в ближайшее время.

И что там у вас с поиском слэша не работало?

User avatar
HaRT
Moderator
Posts: 9441
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 105 times
Been thanked: 222 times

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

Post by HaRT »

John Doe wrote:
Wed 23 Aug, 2017 19:22
Посмотрю в ближайшее время.
Спасибо.
John Doe wrote:
Wed 23 Aug, 2017 19:22
что там у вас с поиском слэша не работало?
Уже и не помню. В последнее время не натыкался.
Фар есть инструмент, а не нянька. © 2009 DrKnS

ccaid
Posts: 846
Joined: Fri 12 Jun, 2009 16:04
Has thanked: 17 times
Been thanked: 5 times

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

Post by ccaid »

John Doe, нет ли у вас более новой версии?
а то с текущими версиями Far:

Code: Select all

...Macros\scripts\Editor.IncSearch.lua:21: bad argument #2 to 'Select' (invalid flag)
Фар делают добрые люди

Shmuel
Posts: 6138
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 31 times
Been thanked: 317 times

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

Post by Shmuel »

ccaid, попробуйте 27-ю строку заменить на } or F.BTYPE_NONE)
(я скриптом не пользовался пока, совет чисто теоретический).

ccaid
Posts: 846
Joined: Fri 12 Jun, 2009 16:04
Has thanked: 17 times
Been thanked: 5 times

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

Post by ccaid »

Shmuel, помогло, спасибо.
Фар делают добрые люди

buniak_a_h
Posts: 1877
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 119 times
Been thanked: 167 times
Contact:

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

Post by buniak_a_h »

ccaid wrote:
Wed 16 Jan, 2019 21:41
John Doe, нет ли у вас более новой версии?
Извините, что вмешиваюсь... Если Вы имеете в виду скрипт от SUSim, то вот (во вложении - исходный, под спойлером - мой немного переделанный)
Editor_QuickSearch.Lua.rar
(2.79 KiB) Downloaded 31 times

ccaid
Posts: 846
Joined: Fri 12 Jun, 2009 16:04
Has thanked: 17 times
Been thanked: 5 times

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

Post by ccaid »

buniak_a_h, нет, для скриптов от SUSim есть своя тема, там бы я и спрашивал, если что
Фар делают добрые люди

User avatar
HaRT
Moderator
Posts: 9441
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 105 times
Been thanked: 222 times

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

Post by HaRT »

ccaid wrote:
Wed 16 Jan, 2019 21:41
John Doe, нет ли у вас более новой версии?
Присоединяюсь к вопросу в надежде, что там исправлены ошибки в работе без EdtFind (проистекающие из нежелательного влияния прежде заданных вручную настроек в диалоге поиска/замены).
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
John Doe
Бюрократ
Posts: 12829
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 288 times

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

Post by John Doe »

HaRT wrote:
Thu 17 Jan, 2019 14:14
исправлены ошибки в работе без EdtFind
Ну если хотите, то вот, добавил костылей:
Скачать

Шапка не обновлялась, поэтому см. также описание к 2.9.

User avatar
HaRT
Moderator
Posts: 9441
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 105 times
Been thanked: 222 times

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

Post by HaRT »

John Doe wrote:
Fri 18 Jan, 2019 09:47
вот
Спасибо!
Вижу в коде такой фрагмент: key:match"^R?Ctrl?RAltBS" — тут часом вокруг Ctrl скобочки не пропущены?

John Doe wrote:
Fri 18 Jan, 2019 09:47
добавил костылей
А нельзя ли ещё опцию V для Reverse search?
Фар есть инструмент, а не нянька. © 2009 DrKnS

Post Reply

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