Macro Browser alt. — обозреватель макросов

Здесь выкладываются готовые к использованию макросы и скрипты.
User avatar
John Doe
Бюрократ
Posts: 12462
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 198 times

Macro Browser alt. — обозреватель макросов

Post by John Doe » Mon 29 Apr, 2013 20:21

Особенности

Действия с макросами в списке
Фильтры
Сортировка
Прочее

Скрипт и функции всех макросов можно проверить никуда не устанавливая, через меню пользователя.
FarMenu.ini прилагается .

Запуск:
  • Пункт в меню плагинов Macro Browser alt. открывает полный список назначенных макросов.
  • Аналогичный пункт в меню конфигурации плагинов (AltShiftF9) позволяет настроить собственные макросы скрипта (открывает список макросов, относящихся к Macro Browser alt.)
    Отсюда удобно менять комбинации клавиш, или отключать неиспользуемые макросы.
Макросы:
Дополнительные макросы:
В качестве модуля:
Требования:
Предупреждение для неопытных пользователей

http://forum.farmanager.com/viewtopic.php?f=15&t=10376

Отзывы и пожелания приветствуются.

Attachments
MacroBrowserAlt.7z
r1.3
(13.06 KiB) Downloaded 395 times

User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 107 times
Been thanked: 9 times

Macro Browser alt. — обозреватель макросов

Post by sToLp » Fri 05 Dec, 2014 21:50

Latest post of the previous page:

John Doe wrote:найдите и удалите подстроку FMENU_SHOWAMPERSAND=1,
Опа: и в меню обозревателя макросов Macro Browser alt. проявились хоткеи, назначенные пользователями макросам! Да Вы ещё и фокусник, уважаемый John Doe! Конечно так значительно удобнее! Большое спасибо! И дальнейших Вам успехов в совершенствовании обозревателя!

User avatar
John Doe
Бюрократ
Posts: 12462
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 198 times

Macro Browser alt. — обозреватель макросов

Post by John Doe » Fri 05 Dec, 2014 21:56

Хоткеи появились, но кое-где у вас наверняка рамки съехали.

User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 107 times
Been thanked: 9 times

Macro Browser alt. — обозреватель макросов

Post by sToLp » Fri 05 Dec, 2014 22:57

Не-а. Покрутил всякие меню Macro Browser alt. по-разному, и вроде всё в порядке. Но может потому, что у меня сейчас экран широченный?

А в целом очень здорово! Особенно в совокупности с ConcurrentHotkeys.lua и ConcurrentHotkeys2.lua!
Второй вариант, правда, в Macro Browser alt. буксует — позиционирует только на первое вхождение. И оба варианта объяснимо не работают пока с хоткеями-цифрами, т.к. цифры в обозревателе заточены под фильтры. Но, ведь, лиха беда начало. А здесь то уже и не начало вовсе, а мощное продолжение!

Про третий вариант ConcurrentHotkeys в той теме сообщил.

User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 107 times
Been thanked: 9 times

Macro Browser alt. — обозреватель макросов

Post by sToLp » Sat 06 Dec, 2014 12:04

В теме "Улучшение меню с дублирующимися хоткеями" изложил очередную свою хотелку, реализация которой в МВА также весьма желательна.
sToLp wrote: А нельзя ли ещё сделать так, чтобы после сброса пользователем отфильтрованного меню (по Esc или F10) происходил возврат к родительскому меню?

User avatar
John Doe
Бюрократ
Posts: 12462
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 198 times

Macro Browser alt. — обозреватель макросов

Post by John Doe » Sat 06 Dec, 2014 13:54

Скорее всего вас устроит двукратное нажатие BS.

User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 107 times
Been thanked: 9 times

Macro Browser alt. — обозреватель макросов

Post by sToLp » Sat 06 Dec, 2014 17:03

John Doe

За неимением гербовой пишут на простой, разумеется.

А в данном случае Ваш макрос "Reset filters" выступает именно в роли "гербовой". И он устраивает вполне. Большое спасибо за очередной подарок пользователям!

User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 107 times
Been thanked: 9 times

Macro Browser alt. — обозреватель макросов

Post by sToLp » Sat 24 Nov, 2018 13:33

John Doe wrote:
Sat 24 Nov, 2018 12:00
sToLp wrote:
Sat 24 Nov, 2018 10:58
как вычленять макросы с невалидными ключами, которые используются для вызова макросов из макросов функцией eval.
Вычленить их можно в MacroBrowserAlt, если актуально, то пишите в соответствующей теме.
Весьма даже актуально. Например, для развития темы Индицировать привязку шортката к нативной команде Фара мне нужно сформировать массу макросов, в которых для оперативных переходов от одних меню к другим требуются невалидные ключи. Есть у меня и другие макросы и задумки макросов, в которых также целенаправленно применяются невалидные ключи.

User avatar
John Doe
Бюрократ
Posts: 12462
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 198 times

Macro Browser alt. — обозреватель макросов

Post by John Doe » Sat 24 Nov, 2018 14:59

Такая возможность предусмотрена пользовательским фильтром, доступным из макробраузера по клавише 0 (как и сказано в справке).
Или же макробраузер можно сразу открыть отфильтрованным, используя штатный макрос на RCtrlNumLock-0.

В открывшемся диалоге нужно ввести условие отбора макросов.
В данном случае одной строкой вводить не очень удобно, но тем не менее:

Code: Select all

return key and not keyregex and 
(function(keys)
  for k in keys:gmatch"%S+" do
    k = k:lower():gsub("^lctrl","ctrl"):gsub("^lalt","alt"):gsub("ctrllalt","ctrlalt")
    if not far.NameToInputRecord(k) and not k:match"%w.?[-:]." then return true end
  end
end)(key)
(макросы MacroEx исключаются из списка одним регэкспом %w.?[-:]. для простоты, но можно сделать и точнее)

Когда-нибудь добавлю этот фильтр в поставку.

User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 107 times
Been thanked: 9 times

Macro Browser alt. — обозреватель макросов

Post by sToLp » Sat 24 Nov, 2018 21:09

John Doe wrote:
Sat 24 Nov, 2018 14:59
Такая возможность предусмотрена пользовательским фильтром
Вот, спасибо! Так стало на много удобнее.
штатный макрос на RCtrlNumLock-0
Увы, запустить этот макрос у меня ни как не получилось. Уж и ключ другой подставлял, и priority убирал и увеличивал...
В открывшемся диалоге нужно ввести условие отбора макросов.
Хорошо, что MBA и между сессиями Far`а запоминает введённое!
Но, кстати, неплохо бы к этому и без того не простому условию добавить ещё и задание не выводить макросы, которым совсем не назначены ключи. Но и сделать бы их вывод отдельным.
Когда-нибудь добавлю этот фильтр в поставку.
Было бы здорово.

User avatar
John Doe
Бюрократ
Posts: 12462
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 198 times

Macro Browser alt. — обозреватель макросов

Post by John Doe » Sun 25 Nov, 2018 08:06

sToLp wrote:
Sat 24 Nov, 2018 21:09
Увы, запустить этот макрос у меня ни как не получилось. Уж и ключ другой подставлял, и priority убирал и увеличивал...
Так свой сделайте по образцу.
sToLp wrote:
Sat 24 Nov, 2018 21:09
Хорошо, что MBA и между сессиями Far`а запоминает введённое!
В макросе если указать в параметрах строку-фильтр, то список будет сразу открываться, без запроса.
sToLp wrote:
Sat 24 Nov, 2018 21:09
добавить ещё и задание не выводить макросы, которым совсем не назначены ключи. Но и сделать бы их вывод отдельным.
Добавьте, это, и что угодно. Именно для этого и задумывался пользовательский фильтр.

Можно макросом, можно в меню пользователя, см. описание и примеры из комплекта.

User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 107 times
Been thanked: 9 times

Macro Browser alt. — обозреватель макросов

Post by sToLp » Sun 25 Nov, 2018 12:05

John Doe wrote:
Sun 25 Nov, 2018 08:06
Спасибо за рекомендации! Прислушался к ним и собрал , обеспечивающие вывод именно тех списков, которые в данное время мне очень нужны.

upd: в макросе с description="mb&a: макросы с невалидными непустыми ключами и без '_' в начале (поJD) CtrlP"; сделана правка по рекомендациям, приведённым John Doe в постах ниже.

upd2: сделана ещё одна правка — вместо k:match('none' or '') в одном макросе указано key=='none', а в другом — указано key~='none' и переставлено на более подходящее место.
Last edited by sToLp on Wed 28 Nov, 2018 17:15, edited 2 times in total.

User avatar
John Doe
Бюрократ
Posts: 12462
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 198 times

Macro Browser alt. — обозреватель макросов

Post by John Doe » Sun 25 Nov, 2018 13:41

Отлично.

В первом макросе я бы рекомендовал добавленные вами проверки делать до вызова функции.

User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 107 times
Been thanked: 9 times

Macro Browser alt. — обозреватель макросов

Post by sToLp » Sun 25 Nov, 2018 16:32

John Doe wrote:
Sun 25 Nov, 2018 13:41
добавленные проверки делать до вызова функции
Проверки на пустые ключи и на начинающиеся со знака подчёркивания поставил перед not far.NameToInputRecord(k), но на результате работы Macro Browser alt. различия не увидел. Или я чего-то не досмотрел?

Поясните, пожалуйста, чем такое расположение проверок предпочтительнее?

User avatar
John Doe
Бюрократ
Posts: 12462
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 198 times

Macro Browser alt. — обозреватель макросов

Post by John Doe » Mon 26 Nov, 2018 08:14

sToLp wrote:
Sun 25 Nov, 2018 16:32
чем такое расположение проверок предпочтительнее
У функции в этом случае получится более узкая задача.
Впоследствии легче будет исправлять и изменять код.

User avatar
John Doe
Бюрократ
Posts: 12462
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 198 times

Macro Browser alt. — обозреватель макросов

Post by John Doe » Mon 26 Nov, 2018 09:40

Уточнение: функция в данном случае содержит цикл, где разбирает строку на отдельные ключи.
И там уже бесполезно сравнивать с пустой строкой, такое условие никогда не выполнится (поэтому это необходимо сделать раньше).
"none" тоже врядли стоит искать в строке где есть нескольких ключей (поэтому тоже можно проверять раньше).
А вот что касается ключей, начинающихся с "_", то тут зависит от того, могут ли они оказаться в одной строке с другими: если могут, то проверку надо оставить в цикле.

Но правильнее проверять так: k:match"^_." или (k:sub(1,1)=="_" and k:len()>1).

User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 107 times
Been thanked: 9 times

Macro Browser alt. — обозреватель макросов

Post by sToLp » Mon 26 Nov, 2018 13:17

John Doe,
Большое спасибо за разъяснение и примеры! С интересом опробовал всё, что Вы посоветовали.
правильнее проверять так: k:match"^_." или (k:sub(1,1)=="_" and k:len()>1).
Вот теперь я увидел и практический результат тоже. Замена поставленного после функции k:match'_' на любой из приведённых Вами примеров в моём случае даёт добавку в выводимый MBA перечень двух макросов. С ключами "AltShift/ cmp_winmerge" и "префиксы11_ _". В прежнем варианте эти макросы в перечень не попадали.

User avatar
John Doe
Бюрократ
Posts: 12462
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 198 times

Macro Browser alt. — обозреватель макросов

Post by John Doe » Mon 26 Nov, 2018 13:33

sToLp wrote:
Sun 25 Nov, 2018 12:05
сделана правка по рекомендациям, приведённым John Doe в постах ниже.
Не доделана правка. Вот это работать не может: if not k:match('none' or '')

Post Reply

Return to “Полезные макросы и скрипты”