Хоткеи для макросов в виде key sequences (как в mc)

Здесь обсуждается всё, что касается макросов.
dyh
Posts: 3
Joined: Mon 20 Mar, 2006 21:37
Contact:

Хоткеи для макросов в виде key sequences (как в mc)

Post by dyh »

Приветствую.

Нехватает возможности задавать хоткеи для макросов ввиде последовательности нажатия клавиш (key sequences). Это наверно ближе к обсуждению расширения макро-фунциональности... Вот например, для вызова диалога поиска - "Esc, ?" (точнее "Esc, Shift /") чтобы выполнить макрос "Alt F7".

Если честно, мне надо только для этого конкретного случая (поиска), привык - постоянно нажимаю вместо "Alt F7"... Наверно это все-таки удобно, раз руки сами нажимают =)
Думаю, кто работает в unix/linux такую возможность оценит отнозначно.

P.S.
Был подобный тикет на мантисе.
Last edited by John Doe on Mon 13 Sep, 2010 09:16, edited 1 time in total.
Reason: P.S.
serg.
User avatar
t-rex
Страшный и ужасный
Posts: 4910
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Has thanked: 1 time
Been thanked: 8 times
Contact:

Post by t-rex »

Ну в mc это сделано на сколько я знаю потому что в терминалах или ещё где то там нельзя (или нету или что то в этом роде) Ctrl Alt и тому подобных клавиш. И меня лично МС этим очень бесит.
User avatar
Andrey Budko
Posts: 1203
Joined: Fri 01 Apr, 2005 14:03
Contact:

Post by Andrey Budko »

t-rex wrote:И меня лично МС этим очень бесит.
Меня бы МС бесило и без этого :)
User avatar
HaRT
Moderator
Posts: 10823
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Post by HaRT »

Если честно, иногда испытываю ностальгию по "аккордам" типа CtrlK, B или CtrlQ, E.
Да и в MSVS такое есть...
Marty
Posts: 170
Joined: Sun 29 Jan, 2006 12:29

Post by Marty »

Никто не в курсе, на текущий момент нет решения? Собрался тут пару шорткатов сделать как в студии, и такой обломс ;(
User avatar
HaRT
Moderator
Posts: 10823
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Post by HaRT »

Marty
Вроде как в сборке 2217 как раз уже можно такое намакросить (см. WaitKey и PlayMacro).
bvv941152
Posts: 9
Joined: Mon 05 Jan, 2009 02:59

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

Post by bvv941152 »

1. "Сложные" горячие клавиши - как было в Turbo|Borland Pascal и т.п. - для увеличения кол-ва макроклавиш и их систематизации
Ctrl-K ... - операции с блоками
Ctrl-K B - поментить начало блока
Ctrl-K K - поментить конец блока
Ctrl-K Н - снять выделение с блока

2. Вложенные вызовы
Макрос состоит из нажатий клавиш, которым может быть назначен, а потом и изменен, свой макрос
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

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

Post by Skirda »

bvv941152 wrote:1. "Сложные" горячие клавиши - как было в Turbo|Borland Pascal и т.п. - для увеличения кол-ва макроклавиш и их систематизации
Я думаю после релиза станет возможным...
bvv941152 wrote:2. Вложенные вызовы
Макрос состоит из нажатий клавиш, которым может быть назначен, а потом и изменен, свой макрос
"%%i=блаблабла;... eval(%%i)" - не оно?
We are the Borg. You will be assimilated.
So Say We All!
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

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

Post by DrKnS »

Skirda wrote:
bvv941152 wrote:1. "Сложные" горячие клавиши - как было в Turbo|Borland Pascal и т.п. - для увеличения кол-ва макроклавиш и их систематизации
Я думаю после релиза станет возможным...
Никогда не понимал, как можно пользоваться этими убогими сочетаниями, но оно, как бы, возможно уже сейчас:
Макрос на CtrlK:
%key=waitkey(); $if %key==B метим_начало_блока $else $if %key==K метим_конец_блока $else ...
dolzenko
Posts: 452
Joined: Wed 19 Apr, 2006 14:42
Location: Ростов-на-Дону

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

Post by dolzenko »

DrKnS wrote:... но оно, как бы, возможно уже сейчас:
Макрос на CtrlK:
%key=waitkey(); ...
смущает
Skirda wrote:Я думаю после релиза станет возможным...
всмысле что будет нового после релиза?
bvv941152
Posts: 9
Joined: Mon 05 Jan, 2009 02:59

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

Post by bvv941152 »

DrKnS wrote: Никогда не понимал, как можно пользоваться этими убогими сочетаниями, но оно, как бы, возможно уже сейчас:
Макрос на CtrlK:
%key=waitkey(); $if %key==B метим_начало_блока $else $if %key==K метим_конец_блока $else ...
Похоже это работающий вариант, но если учесть что таких комбинаций может быть несколько десятков (или даже сотен - за что и боролись), то писать такие макросы слишком муторно - процесс явно нуждается в автоматизации.
Что касается "убогих сочетаний", то можно пользоваться и другими типа: F11 М С или F11 В Enter - т.е. использовать плагины пометки блоков (у меня плагины: М - "Манипулятор блоков"; В - "Выделить сплошной блок"), и задать для этого более короткие сочетания клавиш, но на всё коротких клавиш НЕ ХВАТИТ... Да и с комбинациями трудно только первые 137 раз...

А вообще, как оказалось, для редактора (только!) вроде есть плагин FARKeys
bvv941152
Posts: 9
Joined: Mon 05 Jan, 2009 02:59

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

Post by bvv941152 »

Skirda wrote:
bvv941152 wrote:2. Вложенные вызовы
Макрос состоит из нажатий клавиш, которым может быть назначен, а потом и изменен, свой макрос
"%%i=блаблабла;... eval(%%i)" - не оно?
Я очевидно плохо знаком с языком написания макросов (если это он), но я не не понял что значит "eval(%%i)" и в папке Far-а таких конструкций не нашел, поэтому попытаюсь объясинить на простом примере чего мне хотелось бы:

1) Предпложим есть макрос: CtrlU = "У AltY была AltQ , он ее AltZ , она CtrlT , он ее CtrlE ."
2) Если для комбинаций AltY, AltQ, AltZ, CtrlT и CtrlE макросы не заданы, то при нажатии на CtrlU будет выведено:
"У была , он ее , она , он ее .".

3) Если задать макросы
AltY = "попа"
AltQ = "собака"
AltZ = "любил"
CtrlT = "съела кусок мяса"
CtrE = "убил"
то при нажатии CtrlU уже получится: "У попа была собака, он ее любил, она съела кусок мяса, он ее убил."

4) А если изменить
AltQ = "машина"
CtrlT = "стала ему не по карману"
CtrE = "продал на запчасти"
то получаем "У попа была машина, он ее любил, она стала ему не по карману, он ее продал на запчасти."

Более интересен фариант не с набором простеньких словесных констркций, а например такой:
a) поиск в списке имен файлов с последущей обработкой: переименование, перенос или архивация
заем можно будет сделать почти то же самое, но наоборот
b) поиск в списке имен файлов с последущей обработкой: обратное переименование, перенос или РАЗархивация

А ещё быть может стоит сделать возможность задавать в диалоге число повторов для клавиш, в том числе и тех для которых задан макрос. Вложенные вызовы - тоже позволяют "задать число повторов", но в диалоге это немного проще и быстрее.
dolzenko
Posts: 452
Joined: Wed 19 Apr, 2006 14:42
Location: Ростов-на-Дону

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

Post by dolzenko »

Ну у меня вот такой монстрик имитирующий закладки и комментирование а-ля один из вариантов раскладок клавиатуры в Visual Studio. Повешен на CtrlK, соотв-но:
CtrlK CtrlK - добавить закладку
CtrlK CtrlN - к следующей, если следующей нет, то к первой
CtrlK CtrlP - наоборот
CtrlK CtrlD - удалить текущую
CtrlK CtrlL - удалить все
CtrlK CtrlC - комментировать (требует плагин "Single-line comments")
CtrlK CtrlU - наоборот.
С помощью Macro Editor поддерживать его вполне легко.
dolzenko
Posts: 452
Joined: Wed 19 Apr, 2006 14:42
Location: Ростов-на-Дону

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

Post by dolzenko »

bvv941152 wrote:Я очевидно плохо знаком с языком написания макросов (если это он), но я не не понял что значит "eval(%%i)" и в папке Far-а таких конструкций не нашел
http://api.farmanager.com/ru/macro/index.html
http://api.farmanager.com/ru/macro/macr ... tions.html
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

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

Post by Skirda »

dolzenko_ wrote:
Skirda wrote:Я думаю после релиза станет возможным...
всмысле что будет нового после релиза?
Ну... например такое (вполне себе работающий макрос... из будущего :crazy: ):

Code: Select all

%k=waitkey(0,1); 
$if(%k==B || %k==b || %k==CtrlB) 
  editor.sel(2,0) 
$else 
  $if(%k==K || %k==k || %k==CtrlK)
    editor.sel(2,1) 
  $else
    $if((%k==C || %k==c || %k==CtrlC) && Selected)
      CtrlC
    $else
      $if((%k==Y || %k==y || %k==CtrlY) && Selected)
        CtrlD
      $else
        $SendKey "F1"
      $end
    $end
  $end
$end
В принципе... я могу все это сейчас воткнуть в 2.0... на пробу, т.с., а в 1.7 оно после редиза будет. :oops:
We are the Borg. You will be assimilated.
So Say We All!
Post Reply

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