Как инспектировать гуиды макросов на неповторяемость?
Как инспектировать гуиды макросов на неповторяемость?
Нередко удобно пользоваться копи-пастой для переноса фрагментов одного макроса в другой. При этом иногда по забывчивости или из-за недостаточной дотошности может скопироваться гуид, да так и остаться неизменным. И, таким образом, в разных макросах может оказаться один и тот же гуид.
Подскажите, пожалуйста, способ: как в массе макросов выявить идентичные гуиды?
Подскажите, пожалуйста, способ: как в массе макросов выявить идентичные гуиды?
-
- Posts: 1329
- Joined: Mon 04 Apr, 2005 13:41
- Location: San Ramon, CA / Kharkov, UA
- Has thanked: 32 times
- Been thanked: 61 times
Как инспектировать гуиды макросов на неповторяемость?
- Открыть папку Far\Plugins\LuaMacro
- Сделать копию файла mbrowser.lua
- Заменить вот этим
- Перезапустить Far
- F11 - > Macro Browser. У вас должна появиться новая колонка Id
- CtrlF4 (сортировка по Id)
EDIT: Или скопировать в редактор и использовать плагины для поиска
Last edited by Yegor on Fri 02 Jun, 2023 19:28, edited 2 times in total.
Мы не можем ждать милостей от Фара, взять их у него — наша задача! (C) Мичурин
-
- Posts: 1329
- Joined: Mon 04 Apr, 2005 13:41
- Location: San Ramon, CA / Kharkov, UA
- Has thanked: 32 times
- Been thanked: 61 times
Как инспектировать гуиды макросов на неповторяемость?
Заметил что сортировка для Id работает как-то странно (сортирует криво), зависит от System Settings -> Sorting collation
Мы не можем ждать милостей от Фара, взять их у него — наша задача! (C) Мичурин
- Smitis
- Posts: 1709
- Joined: Fri 18 Mar, 2005 12:51
- Location: Питер
- Has thanked: 23 times
- Been thanked: 55 times
Как инспектировать гуиды макросов на неповторяемость?
Есть глобальное решение - не использовать гуиды в макросах.
Разум когда-нибудь победит.
Как инспектировать гуиды макросов на неповторяемость?
В Фаре под ConEmu колонка .
А в голом Фаре колонка появляется, но из-за хаотичной последовательность расположения гуидов найти двойников весьма затруднительно. Но от самого наличия колонки есть однозначная польза — в ней обозначены макросы, в которых гудов нет: <no id>.
Как инспектировать гуиды макросов на неповторяемость?
Это шутка такая или действительно есть тому обоснование?
-
- Posts: 6836
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
Как инспектировать гуиды макросов на неповторяемость?
Гуид в макросе - опциональное поле, на работоспособность макроса никак не влмяет.
Гуиды эти были введены для удобства некоторых утилит, манипулирующих с макросами.
-
- Posts: 1329
- Joined: Mon 04 Apr, 2005 13:41
- Location: San Ramon, CA / Kharkov, UA
- Has thanked: 32 times
- Been thanked: 61 times
Как инспектировать гуиды макросов на неповторяемость?
попробуйте вот эту версию
Options -> System settings:
Sorting collation: ordinal
[ ] Treat digits as numbers
[ ] Case sensitive
Мы не можем ждать милостей от Фара, взять их у него — наша задача! (C) Мичурин
- buniak_a_h
- Posts: 4262
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
Как инспектировать гуиды макросов на неповторяемость?
А я использую гуиды для связывания разных макросов. Пример - просмотр таблиц (table, far, panel и т.п.) и вызов справки по функциям.
Last edited by buniak_a_h on Fri 02 Jun, 2023 21:36, edited 1 time in total.
- John Doe
- Бюрократ
- Posts: 13855
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 428 times
- Contact:
Как инспектировать гуиды макросов на неповторяемость?
Главный вопрос: для чего.
Впервые они были использованы в rebind. И там для выявления дублей ничего делать не надо, потому что это делается автоматически.
С сортировкой ещё один нюанс есть: возможны дубли отличающиеся регистром.
https://t.me/FarManager — Telegram чат
-
- Posts: 1329
- Joined: Mon 04 Apr, 2005 13:41
- Location: San Ramon, CA / Kharkov, UA
- Has thanked: 32 times
- Been thanked: 61 times
Как инспектировать гуиды макросов на неповторяемость?
Про сортировку написал выше, там можно выбрать и регистр (
[ ] Case sensitive
)Мы не можем ждать милостей от Фара, взять их у него — наша задача! (C) Мичурин
Как инспектировать гуиды макросов на неповторяемость?
Да, rebind вполне решает задачу выявления неуникальных гуидов.
Благодарю Вас.
Как инспектировать гуиды макросов на неповторяемость?
Да, теперь скрипт работает и в Фаре под ConEmu. При этом, при наличии большого количества макросов определить повторяющиеся гуиды "на глаз" при любом из вариантов сортировки строк меню макробраузера едва ли вообще реально. И выше постом уже отмечено, что эту задачу решает rebind, причём — автоматически.
И, вместе с тем, скрипт mbrowser.lua является хорошей альтернативой для практической сверки результатов.
- buniak_a_h
- Posts: 4262
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
Как инспектировать гуиды макросов на неповторяемость?
Предлагаю следующий скрипт на LUA. Скрипт не оформлен как макрос, вызывается из командной строки либо из пользовательского МЕНЮ (пункт МЕНЮ представлен в архиве для примера). Кроме скрипта в архив входят три моих модуля и модуль lua explorer (le.lua).
отработки скрипт выводит список всех скриптов (макросов, ивентов и т.п.) с заданным ГУИДом. Уникальные ГУИДы в списке указаны серым (LIF_GRAYED); по клавише
Ctrl+H
можно выключить/включить показ скриптов с уникальными ГУИДами. По F3
показываются подробности скрипта (те, что выдаёт far.EnumScripts
); для показа используется скрипт le.lua
. По Alt+F4
файл со скриптом открывается в редакторе. Занесение в историю блокируется (мне так удобнее было); позиционирование на макросе не реализовано.
В скрипте обнаружена ошибка. После строки
v=…DM_LISTGETITEM…
надо дописать ; v.Index = i
Исправленное тут
Last edited by buniak_a_h on Tue 06 Jun, 2023 07:02, edited 3 times in total.
Как инспектировать гуиды макросов на неповторяемость?
buniak_a_h,
Во-первых, спасибо за понимание важности задачи и за намерение сделать скрипт, который автоматически находил бы не уникальные (повторяющиеся) гуиды.
Вот только в открывающемся списке макросы с неуникальными гуидами пока что не показаны или не выделены.
И ещё одна шероховатость — после каждой перезагрузки макросов всплывает список, генерируемый скриптом, в том числи и при реальном отсутствии макросов с повторяющимися гуидами.
Во-первых, спасибо за понимание важности задачи и за намерение сделать скрипт, который автоматически находил бы не уникальные (повторяющиеся) гуиды.
И то, и другое работает. Указанные клавиши (скпирт вызывается из командной строки либо из пользовательского МЕНЮ
Ctrl+H
, F3
и Alt+F4
) тоже исправно работают.
Поскольку попозиционирование на макросе не реализовано
Alt+F4
макрос открывается в редакторе, то, при необходимости, оттуда несложно выйти и на местонахождения макроса. Вот только в открывающемся списке макросы с неуникальными гуидами пока что не показаны или не выделены.
И ещё одна шероховатость — после каждой перезагрузки макросов всплывает список, генерируемый скриптом, в том числи и при реальном отсутствии макросов с повторяющимися гуидами.