Редактор: быстрый поиск слова под курсором

Здесь обсуждается всё, что касается макросов.
Yegor
Posts: 1332
Joined: Mon 04 Apr, 2005 13:41
Location: San Ramon, CA / Kharkov, UA
Has thanked: 32 times
Been thanked: 62 times

Редактор: быстрый поиск слова под курсором

Post by Yegor »

Есть три макроса (please see below):
1) Ctrl+F - открывает окно поиска и вставляет текущее слово под курсором;
2) Ctrl+Down - ищет слово под курсором ниже по тексту;
3) Ctrl+Up - ищет слово под курсором выше по тексту.

Code: Select all

[HKEY_CURRENT_USER\Software\Far\KeyMacros\Editor\CtrlF]
"Sequence"="$IClip CtrlShiftRight CtrlU CtrlShiftLeft CtrlIns CtrlU Right F7 ShiftIns $IClip ShiftHome"
"DisableOutput"=dword:00000001

[HKEY_CURRENT_USER\Software\Far\KeyMacros\Editor\CtrlDown]
"Sequence"="$IClip CtrlShiftRight CtrlU CtrlShiftLeft CtrlIns CtrlU Right F7 ShiftIns $IClip Down Subtract Down Add Down Subtract Enter $If (Dialog) Esc $End"
"DisableOutput"=dword:00000001

[HKEY_CURRENT_USER\Software\Far\KeyMacros\Editor\CtrlUp]
"Sequence"="$IClip CtrlShiftRight CtrlU CtrlShiftLeft CtrlIns CtrlU Left F7 ShiftIns $IClip Down Subtract Down Add Down Add Enter $If (Dialog) Esc $End"
"DisableOutput"=dword:00000001
Вопросы в следующем:

1) Как можно выделить слово под курсором более «нормальным способом», а не через «как я»?

2) После выполнения Ctrl+Down и/или Ctrl+Up остаются испорченными настройки диалога, что сильно мешает. К примеру, после Ctrl+Up остаются:
[x] Whole words
[x] Reverse search
Можно ли от этого как-то избавится? Например, чтобы настройки были на время выполнения макроса (типа сессионными).

P.S. Разные плагины (типа S&R) ставить «религия не позволяет»... ;-)
Мы не можем ждать милостей от Фара, взять их у него — наша задача! (C) Мичурин
User avatar
Centaur
Posts: 1083
Joined: Tue 05 Apr, 2005 20:09
Location: Novosibirsk, Russia
Been thanked: 2 times

Post by Centaur »

1. Если откинуть вариант с написанием или нахождением плагина, умеющего выделять слова, то, видимо, никак нельзя.
2. Видимо, перемакросить F7 = F7 AltV Subtract AltW Subtract AltS, ShiftF7 = F7 AltV Subtract AltW Subtract Enter, AltF7 = F7 AltV Add AltW Subtract Enter.
User avatar
HaRT
Moderator
Posts: 10869
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Re: Help: Быстрый поиск слова под курсором

Post by HaRT »

Yegor wrote:2) После выполнения Ctrl+Down и/или Ctrl+Up остаются испорченными настройки диалога, что сильно мешает. К примеру, после Ctrl+Up остаются:
[x] Whole words
[x] Reverse search
Можно ли от этого как-то избавится? Например, чтобы настройки были на время выполнения макроса (типа сессионными).
Вот пример, который удалит из истории диалога последний элемент и очистит те две настройки:

Code: Select all

F7 CtrlDown ShiftDel Esc CtrlY Down Down Subtract Down Subtract Enter
Разумеется, более правильно будет запоминать опции (см. Dlg.GetValue) в начале макроса, а в конце — восстанавливать.
User avatar
zg
zero-gravity
Posts: 6038
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Post by zg »

1. есть плагин, extended select.
Yegor
Posts: 1332
Joined: Mon 04 Apr, 2005 13:41
Location: San Ramon, CA / Kharkov, UA
Has thanked: 32 times
Been thanked: 62 times

Re: Help: Быстрый поиск слова под курсором

Post by Yegor »

С 1)-м все ясно, а со 2)-м:
HaRT wrote:Разумеется, более правильно будет запоминать опции (см. Dlg.GetValue) в начале макроса, а в конце — восстанавливать.
Не очень удобно, но, похоже, то, что нужно. Спасибо.
Мы не можем ждать милостей от Фара, взять их у него — наша задача! (C) Мичурин
al666
Posts: 239
Joined: Mon 04 Jul, 2005 08:55
Been thanked: 1 time

Re: Help: Быстрый поиск слова под курсором

Post by al666 »

Yegor wrote:1) Как можно выделить слово под курсором более «нормальным способом», а не через «как я»?
Единственный нормальный способ:

Code: Select all

[HKEY_CURRENT_USER\Software\Far\PluginHotkeys\Plugins/s&r/s_and_r.dll]
"Hotkey"="s"

[HKEY_CURRENT_USER\Software\Far\KeyMacros\Editor\CtrlAltDown]
"Sequence"="F11 s 5"
"DisableOutput"=dword:00000001

[HKEY_CURRENT_USER\Software\Far\KeyMacros\Editor\CtrlAltUp]
"Sequence"="F11 s 6"
"DisableOutput"=dword:00000001
Yegor wrote:2) После выполнения Ctrl+Down и/или Ctrl+Up остаются испорченными настройки диалога
Заодно и этой проблемы не будет.
Yegor wrote:P.S. Разные плагины (типа S&R) ставить «религия не позволяет»... ;-)
"Надо себя заставлять" :twisted:
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: Help: Быстрый поиск слова под курсором

Post by Skirda »

Yegor wrote:1) Как можно выделить слово под курсором более «нормальным способом», а не через «как я»?
Дааавно "томится" в потемках $SelWord. Видимо придется "отрыть". :P
Правда он для други целей был..., ну да ладно. Будет.
У него есть одна особенность: оператор выделяет слово, юзая TechInfo#1 - символы из этого TechInfo выделяться не будут.
Yegor
Posts: 1332
Joined: Mon 04 Apr, 2005 13:41
Location: San Ramon, CA / Kharkov, UA
Has thanked: 32 times
Been thanked: 62 times

Post by Yegor »

Ждем-с 8)

Ээээ... А там в потемках может еще, что "томится"? :oops:
Мы не можем ждать милостей от Фара, взять их у него — наша задача! (C) Мичурин
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Post by Skirda »

Yegor, ну... на конец 2004-го было порядка 100-200 (сорцов+доп.материала) метров (у меня, не знаю как у других) :-)
Сейчас уже поменее будет, т.к. половина убавилась путем реализации плагинами и... как ни странно, макросами; кое-то реализовано, а что-то требует серьезного анализа и доработки (за давностью лет).
Некоторые вещи были бредовыми, некоторые совершенно бредовыми, некоторые (в свое время) пришлось вводить с боем...
Что-то даже на сейчас невозможно реализовать (по разным причинам) - только наброски (идеи)...
В обЧем всяко. :oops:
Alexey Lubkin
Posts: 106
Joined: Sun 23 Oct, 2005 10:02
Location: Томск
Has thanked: 1 time
Contact:

Re: Help: Быстрый поиск слова под курсором

Post by Alexey Lubkin »

HaRT wrote:Разумеется, более правильно будет запоминать опции (см. Dlg.GetValue) в начале макроса, а в конце — восстанавливать.
Запомнить - легко. А в конце восстановить (безобидно, =не выполняя диалога) не получится :)

п.с. Задумался над тем, как диалог CtrlG восстановить. Т.е. разово выполнить заданную команду и тут же восстановить значение единственного поля в предыдущее состояние. Вроде невозможно никак.
Yegor
Posts: 1332
Joined: Mon 04 Apr, 2005 13:41
Location: San Ramon, CA / Kharkov, UA
Has thanked: 32 times
Been thanked: 62 times

Re: Help: Быстрый поиск слова под курсором

Post by Yegor »

Alexey Lubkin wrote: А в конце восстановить (безобидно, =не выполняя диалога) не получится :)
Есть такое дело, я чтобы "не парится" сделал себе такую вещь

Code: Select all

REGEDIT4

[HKEY_CURRENT_USER\Software\Far\KeyMacros\Dialog\ShiftSubtract]
"Sequence"="AltC Subtract Down Subtract Down Subtract AltS"
"DisableOutput"=dword:00000001
и уже привык. А если учесть, что нажатие [Shift-Subtract] снимает выделение на панелях, то даже логично, что в диалоге это нажатие приведет к сбросу настроек.
Мы не можем ждать милостей от Фара, взять их у него — наша задача! (C) Мичурин
Alexey Lubkin
Posts: 106
Joined: Sun 23 Oct, 2005 10:02
Location: Томск
Has thanked: 1 time
Contact:

Post by Alexey Lubkin »

Yegor
Что-то не соображу, в чём здесь предназначение AltC, Subtract, Down и AltS ? :? Это наверное под какой-то конкретный диалог заточено? В Ctrl+G ничего подобного не видно.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Post by DrKnS »

Skirda
$SelWord криво работает в dos-кодировке. Как увидеть:

Code: Select all

macro:post shiftf4 ctrly enter shiftf8 d "заявление" home $selword
- выделяет только "яв".
В других кодировках всё ок.
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Post by Skirda »

DrKnS, нарисуй на мантис.
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Post by Skirda »

Post Reply

Return to “Обсуждение макросов”