Вызов:
LAlt
Использование:
посимвольно вводить строку
вставить из буфера (ShiftIns, CtrlV)
посимвольно удалять строку (BS)
переходить к следующему вхождению искомой строки (ShiftF7, F3)
переключать раскладку клавиатуры (AltShift, CtrlShift, Shift, RCtrl)
любые комбинации вышеперечисленных действий
Выход:
Esc, LAlt — выход из поиска
все оставшиеся комбинации (незадействованные в поиске) — выход из поиска, исполнение нажатой комбинации
Особенности:
режим быстрого поиска индицируется в заголовке редактора — символ '>' и искомая строка
если при активации режима курсор находится в пределах однострочного выделенного блока, то этот блок используется как начальное значение искомой строки, иначе она вначале пустая
если есть плагин EdtFind, то для поиска используется он
иначе используется нативный редакторный поиск
можно принудительно отключить использование EdtFind присвоением EF=false в теле макроса
никакого управления настройками поиска из макроса — используется то, что в данный момент настроено в плагине/редакторном поиске
строки поиска не попадают в историю, в истории могут быть отмеченные элементы
продолжение поиска (ShiftF7, F3) не отключает режим быстрого поиска
продолжение поиска в обратном направлении (AltF7, ShiftF3) отключает режим быстрого поиска, причем плагин EdtFind подхватывает искомую строку, а нативный редакторный поиск — нет
раскладку макрос сам не переключает — он просто пропускает указанные комбинации мимо себя
История:
v1.0 (2013-06-26) — начальный работающий вариант
v1.1 (2013-06-27) — добавлена работа с историей поиска
v1.2 (2013-06-27) — улучшена работа с историей поиска
v1.3 (2013-07-03) — возможность переключения раскладки
v1.4 (2013-07-17) — автоподхват выделенного блока
v1.5 (2013-07-26) — поддержка пробела, удаление концевых символов конца строки при вставке и автоподхвате
v1.6 (2013-08-21) — поддержка продолжения поиска
LAlt
Использование:
посимвольно вводить строку
вставить из буфера (ShiftIns, CtrlV)
посимвольно удалять строку (BS)
переходить к следующему вхождению искомой строки (ShiftF7, F3)
переключать раскладку клавиатуры (AltShift, CtrlShift, Shift, RCtrl)
любые комбинации вышеперечисленных действий
Выход:
Esc, LAlt — выход из поиска
все оставшиеся комбинации (незадействованные в поиске) — выход из поиска, исполнение нажатой комбинации
Особенности:
режим быстрого поиска индицируется в заголовке редактора — символ '>' и искомая строка
если при активации режима курсор находится в пределах однострочного выделенного блока, то этот блок используется как начальное значение искомой строки, иначе она вначале пустая
если есть плагин EdtFind, то для поиска используется он
иначе используется нативный редакторный поиск
можно принудительно отключить использование EdtFind присвоением EF=false в теле макроса
никакого управления настройками поиска из макроса — используется то, что в данный момент настроено в плагине/редакторном поиске
строки поиска не попадают в историю, в истории могут быть отмеченные элементы
продолжение поиска (ShiftF7, F3) не отключает режим быстрого поиска
продолжение поиска в обратном направлении (AltF7, ShiftF3) отключает режим быстрого поиска, причем плагин EdtFind подхватывает искомую строку, а нативный редакторный поиск — нет
раскладку макрос сам не переключает — он просто пропускает указанные комбинации мимо себя
История:
v1.0 (2013-06-26) — начальный работающий вариант
v1.1 (2013-06-27) — добавлена работа с историей поиска
v1.2 (2013-06-27) — улучшена работа с историей поиска
v1.3 (2013-07-03) — возможность переключения раскладки
v1.4 (2013-07-17) — автоподхват выделенного блока
v1.5 (2013-07-26) — поддержка пробела, удаление концевых символов конца строки при вставке и автоподхвате
v1.6 (2013-08-21) — поддержка продолжения поиска
- local qs, str
- local EF=true
- local EdtFind = 'E4ABD267-C2F9-4158-818F-B0E040A2AB9F'
- local function search(str)
- local h=Far.DisableHistory(-1)
- if EF and Plugin.Menu(EdtFind) then
- Keys("1 CtrlY")
- else
- Keys("F7 CtrlY")
- end
- print(str)
- Keys("Enter")
- Far.DisableHistory(h)
- end
- Macro {
- area="Editor"; key="LAlt"; flags=""; description="Быстрый поиск: вход";
- condition=function()
- return qs==nil
- end;
- action=function()
- qs=1
- str= Editor.Sel(0,4)~=0 and
- Editor.Sel(0,0)==Editor.Pos(0,1) and
- Editor.Sel(0,2)==Editor.Pos(0,1) and
- Editor.Sel(0,1)<=Editor.Pos(0,2) and
- Editor.Sel(0,3)>=Editor.Pos(0,2) and
- Editor.SelValue:gsub("(.-)\r?\n?","%1") or ""
- Editor.SetTitle(">"..str)
- end;
- }
- Macro {
- area="Editor"; key="/.+/"; flags=""; priority=51; description="Быстрый поиск: работа";
- condition=function()
- return qs~=nil
- end;
- action=function()
- local akey=mf.akey(1,1)
- if akey=="ShiftIns" or akey=="CtrlV" then
- akey=mf.clip(0):gsub("(.-)\r?\n?","%1")
- elseif akey=="Shift" or akey=="RCtrl" then
- Keys(akey)
- exit()
- elseif (akey=="ShiftF7" or akey=="F3") and str ~= "" then
- Keys('Right')
- akey=''
- elseif akey=="BS" then
- str=str:sub(1,-2)
- akey=''
- elseif akey=="Space" then
- akey=' '
- elseif akey=="Divide" then
- akey='/'
- elseif akey=="Multiply" then
- akey='*'
- elseif akey=="Subtract" then
- akey='-'
- elseif akey=="Add" then
- akey='+'
- elseif akey=="Decimal" then
- akey='.'
- elseif akey:len() > 1 then
- if (akey=="AltF7" or akey=="ShiftF3") and str ~= "" then
- Plugin.Call(EdtFind,"Set "..str)
- end
- qs=nil
- str=""
- Editor.SetTitle("")
- if akey~="Esc" and akey~="Alt" then
- if eval("Editor/"..akey,2)==-2 then
- if eval("Common/"..akey,2)==-2 then
- Keys(akey)
- end
- end
- end
- exit()
- end
- str=str..akey
- Editor.SetTitle(">"..str)
- search(str)
- end;
- }
GeSHi © Codebox Plus Extension
- Editor.qsearch.v1.5.7z
- (1.68 KiB) Downloaded 142 times
- Editor.qsearch.v1.4.7z
- (1.61 KiB) Downloaded 129 times
- Editor.qsearch.v1.2.7z
- (1.35 KiB) Downloaded 137 times
- Editor.qsearch.7z
- (1.22 KiB) Downloaded 134 times