Page 1 of 2
выделить все вхождения слова под курсором
Posted: Wed 21 Jan, 2009 11:59
by jed
Хочу, нажав например CtrlF3, выделить все вхождения слова под курсором, в редакторе, на текущем экране.
Как вариант еще и сразу перескочить при этом к следующему вхождению.
Есть такое в каком-либо плагине? Чего-то не нашел.
Re: выделить все вхождения слова под курсором
Posted: Wed 21 Jan, 2009 12:14
by dolzenko
Ну это просто, пишем макрос который делает временную "вырожденную" схему для колорера, включающую в себя только выделение слова под курсором, затем применяем эту схему к текущему файлу.
PS. а если серъезно - то не знаю
Re: выделить все вхождения слова под курсором
Posted: Wed 21 Jan, 2009 12:22
by NightRoman
Про выделение всех слов - не знаю. Переход на следующее вхождение у меня реализован макросом CtrlF3 (именно) с плагином S&R:
F11 s 1 Enter
Здесь "s" - это хоткей S&R в меню плагинов. Еще надо донастроить сам плагин, смотри его настройки - чтобы текущее слово попадало сразу в поле ввода диалога поиска. Еще там есть вариант выделять само это текущее слово или нет (я использую "выделять", так в Вижуал Студии, но это дело вкуса).
Re: выделить все вхождения слова под курсором
Posted: Wed 21 Jan, 2009 12:42
by HaRT
NightRoman wrote:надо донастроить сам плагин, смотри его настройки - чтобы текущее слово попадало сразу
Ну или можно воспользоваться в его же меню пунктами 5/6 — они как раз для этого вне зависимости от настроек. Но тогда слово не попадёт в историю того, что искали.
Однако, если я правильно понял, весь пафос вопроса в том, чтобы подсвечивать все вхождения слова под курсором. Если бы нашёлся программист-энтузиаст, можно было бы попытаться добавить такую функциональность в
Visualizer…
Re: выделить все вхождения слова под курсором
Posted: Wed 21 Jan, 2009 14:39
by zg
плагин «крест»:
Code: Select all
8. Hilights words on screen the same as under cursor
Re: выделить все вхождения слова под курсором
Posted: Wed 21 Jan, 2009 15:11
by HaRT
Re: выделить все вхождения слова под курсором
Posted: Fri 23 Jan, 2009 07:26
by jed
Спасибо. "Крест" как раз то что нужно.
выделить все вхождения слова под курсором
Posted: Thu 17 Dec, 2015 10:09
by faruh
что посоветуете для Фар 3 по сабжу (плагин, макрос, etc.)
может кто поделиться используемым решением
как последняя альтернатива
dolzenko wrote: пишем макрос который делает временную "вырожденную" схему для колорера
п.с. прошу сильно не бить ногами, так как длительное время не следил за изменениями в комьюнити
выделить все вхождения слова под курсором
Posted: Thu 17 Dec, 2015 12:02
by cmd.exe
Crest Или
CrestII
Под x86 работают, и использовал когда-то. Есть исходники, могу собрать для вас под x64.
выделить все вхождения слова под курсором
Posted: Thu 17 Dec, 2015 12:25
by faruh
поставил
"крест" рисует, но не могу найти ничего похожего на
8. Hilights words on screen the same as under cursor
не подскажите как включить?
выделить все вхождения слова под курсором
Posted: Thu 17 Dec, 2015 12:34
by faruh
zg wrote: Hilights words on screen the same as under cursor
нашел "hilight all same words on screen" в файле !!todo к Crest. как понимаю фича не реализована
выделить все вхождения слова под курсором
Posted: Thu 17 Dec, 2015 12:40
by zg
faruh wrote:нашел "hilight all same words on screen" в файле !!todo к Crest
как понимаю фича не реализована
реализована и она даже работает в последнем фаре.
выделить все вхождения слова под курсором
Posted: Thu 17 Dec, 2015 12:52
by faruh
выделить все вхождения слова под курсором
Posted: Thu 17 Dec, 2015 13:04
by faruh
выделить все вхождения слова под курсором
Posted: Thu 17 Dec, 2015 13:51
by zg
простейший макрос пишется от силы за пол часа:
Code: Select all
F=far.Flags
color=
Flags:bit64.bor F.FCF_FG_4BIT,F.FCF_BG_4BIT
ForegroundColor:0x1
BackgroundColor:0xf
colorguid=win.Uuid "507CFA2A-3BA3-4f2b-8A80-318F5A831235"
word=false
Macro
area:"Editor"
key:"F5"
description:"Color Word Under Cursor"
action:->
if word then word=false
else
ei=editor.GetInfo!
pos,row=ei.CurPos,ei.CurLine
line=editor.GetString!.StringText
if pos<=line\len()+1
slab=pos>1 and line\sub(1,pos-1)\match('[%w_]+$') or ""
tail=line\sub(pos)\match('^[%w_]+') or ""
word=slab..tail
if word\len()<=0 then word=false
Event
group:"EditorEvent"
action:(id,event,param)->
if event==F.EE_REDRAW
if word
ei=editor.GetInfo!
start,finish=ei.TopScreenLine,math.min ei.TopScreenLine+ei.WindowSizeY,ei.TotalLines
for ii=start,finish
line,pos=editor.GetString(-1,ii).StringText,1
while true
jj,kk,curr=line\cfind("([%w_]+)",pos)
if not jj then break
if curr==word then editor.AddColor ei.EditorID,ii,jj,kk,F.ECF_AUTODELETE,color,100,colorguid
pos=kk+1