выделить все вхождения слова под курсором

Вам не хватает чего-то в Far? Вы считаете, что вашу идею стоит услышать? Пишите сюда.
jed
Posts: 5
Joined: Sat 02 Aug, 2008 16:43

выделить все вхождения слова под курсором

Postby jed » Wed 21 Jan, 2009 11:59

Хочу, нажав например CtrlF3, выделить все вхождения слова под курсором, в редакторе, на текущем экране.
Как вариант еще и сразу перескочить при этом к следующему вхождению.
Есть такое в каком-либо плагине? Чего-то не нашел.

dolzenko
Posts: 452
Joined: Wed 19 Apr, 2006 14:42
Location: Ростов-на-Дону

Re: выделить все вхождения слова под курсором

Postby dolzenko » Wed 21 Jan, 2009 12:14

Ну это просто, пишем макрос который делает временную "вырожденную" схему для колорера, включающую в себя только выделение слова под курсором, затем применяем эту схему к текущему файлу.

PS. а если серъезно - то не знаю :?

User avatar
NightRoman
Posts: 5849
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 8 times
Been thanked: 8 times
Contact:

Re: выделить все вхождения слова под курсором

Postby NightRoman » Wed 21 Jan, 2009 12:22

Про выделение всех слов - не знаю. Переход на следующее вхождение у меня реализован макросом CtrlF3 (именно) с плагином S&R:
F11 s 1 Enter

Здесь "s" - это хоткей S&R в меню плагинов. Еще надо донастроить сам плагин, смотри его настройки - чтобы текущее слово попадало сразу в поле ввода диалога поиска. Еще там есть вариант выделять само это текущее слово или нет (я использую "выделять", так в Вижуал Студии, но это дело вкуса).

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

Re: выделить все вхождения слова под курсором

Postby HaRT » Wed 21 Jan, 2009 12:42

NightRoman wrote:надо донастроить сам плагин, смотри его настройки - чтобы текущее слово попадало сразу
Ну или можно воспользоваться в его же меню пунктами 5/6 — они как раз для этого вне зависимости от настроек. Но тогда слово не попадёт в историю того, что искали.

Однако, если я правильно понял, весь пафос вопроса в том, чтобы подсвечивать все вхождения слова под курсором. Если бы нашёлся программист-энтузиаст, можно было бы попытаться добавить такую функциональность в Visualizer
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
zg
zero-gravity
Posts: 5221
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 42 times
Contact:

Re: выделить все вхождения слова под курсором

Postby zg » Wed 21 Jan, 2009 14:39

плагин «крест»:

Code: Select all

8. Hilights words on screen the same as under cursor

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

Re: выделить все вхождения слова под курсором

Postby HaRT » Wed 21 Jan, 2009 15:11

Вот спасибо!
Фар есть инструмент, а не нянька. © 2009 DrKnS

jed
Posts: 5
Joined: Sat 02 Aug, 2008 16:43

Re: выделить все вхождения слова под курсором

Postby jed » Fri 23 Jan, 2009 07:26

Спасибо. "Крест" как раз то что нужно.

User avatar
faruh
Posts: 50
Joined: Sat 04 Apr, 2009 19:46

выделить все вхождения слова под курсором

Postby faruh » Thu 17 Dec, 2015 10:09

что посоветуете для Фар 3 по сабжу (плагин, макрос, etc.)
может кто поделиться используемым решением

как последняя альтернатива
dolzenko wrote:Source of the post пишем макрос который делает временную "вырожденную" схему для колорера

п.с. прошу сильно не бить ногами, так как длительное время не следил за изменениями в комьюнити

User avatar
cmd.exe
Posts: 317
Joined: Fri 16 Apr, 2010 18:26
Location: Нижний Новгород
Has thanked: 168 times
Been thanked: 5 times
Contact:

выделить все вхождения слова под курсором

Postby cmd.exe » Thu 17 Dec, 2015 12:02

Crest Или CrestII
Под x86 работают, и использовал когда-то. Есть исходники, могу собрать для вас под x64.
I've been using Vim for about 2 years now, mostly because I can't figure out how to exit it. (c) I Am Devloper
I know nothing except the fact of my ignorance. (с) Socrates

User avatar
faruh
Posts: 50
Joined: Sat 04 Apr, 2009 19:46

выделить все вхождения слова под курсором

Postby faruh » Thu 17 Dec, 2015 12:25

поставил
cmd.exe wrote:Source of the post CrestII
"крест" рисует, но не могу найти ничего похожего на
Source of the post 8. Hilights words on screen the same as under cursor
не подскажите как включить?

User avatar
faruh
Posts: 50
Joined: Sat 04 Apr, 2009 19:46

выделить все вхождения слова под курсором

Postby faruh » Thu 17 Dec, 2015 12:34

zg wrote:Source of the post Hilights words on screen the same as under cursor
нашел "hilight all same words on screen" в файле !!todo к Crest. как понимаю фича не реализована

User avatar
zg
zero-gravity
Posts: 5221
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 42 times
Contact:

выделить все вхождения слова под курсором

Postby zg » Thu 17 Dec, 2015 12:40

faruh wrote:нашел "hilight all same words on screen" в файле !!todo к Crest
как понимаю фича не реализована
реализована и она даже работает в последнем фаре.

User avatar
faruh
Posts: 50
Joined: Sat 04 Apr, 2009 19:46

выделить все вхождения слова под курсором

Postby faruh » Thu 17 Dec, 2015 12:52

zg wrote:Source of the post даже работает
работает. спасибо

User avatar
faruh
Posts: 50
Joined: Sat 04 Apr, 2009 19:46

выделить все вхождения слова под курсором

Postby faruh » Thu 17 Dec, 2015 13:04

еще можно использовать EdtFind
How to make Far3 editor to highlight a specific word?

User avatar
zg
zero-gravity
Posts: 5221
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 42 times
Contact:

выделить все вхождения слова под курсором

Postby zg » Thu 17 Dec, 2015 13:51

простейший макрос пишется от силы за пол часа:

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

Shmuel
Posts: 4997
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 11 times
Been thanked: 132 times

выделить все вхождения слова под курсором

Postby Shmuel » Thu 17 Dec, 2015 15:29

Вместо

Code: Select all

color=
  Flags:bit64.bor F.FCF_FG_4BIT,F.FCF_BG_4BIT
  ForegroundColor:0x1
  BackgroundColor:0xf

можно просто color=0xf1.


Return to “Предложения и идеи”

Who is online

Users browsing this forum: Google [Bot] and 2 guests