Page 5 of 8

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

Posted: Mon 04 Aug, 2014 23:58
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

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

Posted: Wed 26 Apr, 2017 08:19
by John Doe

Latest post of the previous page:

HaRT wrote: однако на то, что находится (разумеется, когда файл содержательный), опция влияния не оказывает
Тут оказалось просто: после редизайна диалога поиска в билде 4473 позиции опций изменились, что в скрипте не учтено.
HaRT wrote: пытаясь изолировать проблему с поиском слэша
Что за проблема-то?
Планирую перевыложить скрипт с накопившимися исправлениями.

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

Posted: Tue 22 Aug, 2017 20:50
by HaRT
При использовании встроенного поиска Фара берутся опции Case sensitive, Whole words и Regular expressions, которые выставлены в диалоге поиска, т.е. те, которые были когда-то использованы в предыдущем обычном поиске в этом же редакторе. Я как пользователь их, разумеется, не помню. А сталкиваюсь я с тем, что в результате строка, которая точно есть в файле и которую я набираю по одной букве, просто не находится. :(
Не исправлено ли это часом в неопубликованной версии (новее, чем 2.9)? Если нет, сложно ли при начале инкрементного поиска выставлять эти опции в соответствии с настройками скрипта?

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

Posted: Wed 23 Aug, 2017 19:22
by John Doe
Посмотрю в ближайшее время.

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

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

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

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

Posted: Wed 16 Jan, 2019 21:41
by ccaid
John Doe, нет ли у вас более новой версии?
а то с текущими версиями Far:

Code: Select all

...Macros\scripts\Editor.IncSearch.lua:21: bad argument #2 to 'Select' (invalid flag)

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

Posted: Wed 16 Jan, 2019 21:58
by Shmuel
ccaid, попробуйте 27-ю строку заменить на } or F.BTYPE_NONE)
(я скриптом не пользовался пока, совет чисто теоретический).

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

Posted: Wed 16 Jan, 2019 22:07
by ccaid
Shmuel, помогло, спасибо.

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

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

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

Posted: Wed 16 Jan, 2019 22:15
by ccaid
buniak_a_h, нет, для скриптов от SUSim есть своя тема, там бы я и спрашивал, если что

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

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

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

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

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

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

Posted: Fri 18 Jan, 2019 17:33
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?

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

Posted: Fri 18 Jan, 2019 17:42
by Shmuel
Фрагмент RCtrl? наверняка ошибочный, но скобочки не помогут, так как паттерны Lua это не поддерживают.
Но в LuaFAR есть библиотека regex, она поддерживает.

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

Posted: Sat 19 Jan, 2019 09:33
by John Doe
Указанные ошибки исправлены, спасибо.
HaRT wrote: Fri 18 Jan, 2019 17:33 А нельзя ли ещё опцию V для Reverse search?
Опишите сценарий использования, учитывая взаимодействие с командами поиска вперёд/назад, в модальном и немодальном режиме (возможно это непринципиально).

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

Posted: Mon 21 Jan, 2019 11:30
by HaRT
John Doe wrote: Sat 19 Jan, 2019 09:33 Опишите сценарий использования, учитывая взаимодействие с командами поиска вперёд/назад
Основных сценариев пока два:
1. Обычным поиском искал что-то назад, затем хочу воспользоваться инкрементным поиском вперёд, а он ищет только назад — приходится из него выходить, открывать обычный поиск, там отключать поиск назад (и уже нет смысла возвращаться в инкрементный поиск).
2. Искал что-то обычным поиском вперёд, затем хочется поискать инкрементным назад, но он ищет только вперёд — приходится снова пользоваться обычным поиском.

Немодальным режимом поиска я не пользуюсь, поскольку у меня есть локальные проблемы (вызванные программой Keyboard Maniac) с распознаванием правого Alt, поэтому я модальный инкрементный поиск переназначаю на левый Alt (кстати, хотелось бы иметь такую возможность из коробки).

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

Posted: Mon 21 Jan, 2019 16:20
by John Doe
1. Вроде исправил.
2. Инкрементный поиск назад не предусмотрен, всё заточено на "вперёд".
Но уже введённую строку можно в любом направлении искать.
HaRT wrote: Mon 21 Jan, 2019 11:30 поэтому я модальный инкрементный поиск переназначаю на левый Alt (кстати, хотелось бы иметь такую возможность из коробки).
Что именно вы хотите "из коробки"?
Только модальный, или оба?