Пользовательская сортировка файлов с макросами.

Столкнулись с проблемой в использовании макросов? Здесь можно получить помощь.
User avatar
sToLp
Posts: 774
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 58 times
Been thanked: 5 times

Пользовательская сортировка файлов с макросами.

Post by sToLp » Thu 23 Jun, 2016 16:22

Как-то незаметно постепенно скопилась у меня куча разномастных макросов, и задумал я упорядочить их по-своему. В т.ч. в именах файлов употреблять сокращения: [ вместо Ctrl, соответственно ] — вместо RCtrl, ( и ) — вместо Alt и RAlt, { и } — вместо Shift и RShift. И хотелось привычно их по ключу key, обозначаемому в начале имён файлов с макросами.

При этом с составлением макроса необходимой пользовательской сортировки у меня никак не получилось. Более того, я явно запутался и не смог понять, как в принципе привинтить к пользовательской сортировке регекс. Да и в составлении самого регекса не очень-то был уверен. Однако мне всё же повезло, поскольку я раскопал на ру-борде готовый макрос-комбайн Panel.CustomSortByName.lua авторства Alexyz21. И с нескольких попыток мне удалось применить-таки в этом макросе составленный мною . И, в принципе, таким образом задача желательной мне сортировки файлов с макросами как бы и решена.

Однако такое решение, всё-таки несоразмерно как из пушки по воробьям и поэтому у меня есть следующие две просьбы к сообществу.

1. Подскажите, каким всё-таки должен быть оптимальный макрос, решающий данную локальную задачу пользовательской сортировки файлов с макросами?

2. Как сделать, чтобы при выставлении на панели Фара папки с макросами %FarProfile%\Macros\ или её подпапок файлы в них автоматически сортировались бы подобным показанному выше (под спойлером "сортировать") образом, а при уходе из сферы файлов с макросами сортировались бы по имени?

Shmuel
Posts: 5236
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 152 times

Пользовательская сортировка файлов с макросами.

Post by Shmuel » Thu 23 Jun, 2016 17:04

sToLp wrote: Однако мне всё же повезло, поскольку я раскопал на ру-борде готовый макрос-комбайн Panel.CustomSortByName.lua авторства Alexyz21.
Не надо лукавить, пожалуйста, насчёт "раскопал".
sToLp wrote: 1. Подскажите, каким всё-таки должен быть оптимальный макрос, решающий данную локальную задачу пользовательской сортировки файлов с макросами?
Что значит "оптимальный"? Это зависит от критериев оптимальности.
sToLp wrote: 2. Как сделать, чтобы при выставлении на панели Фара папки с макросами %FarProfile%\Macros\ или её подпапок файлы в них автоматически сортировались бы подобным показанному выше (под спойлером "сортировать") образом, а при уходе из сферы файлов с макросами сортировались бы по имени?
Это сделать не просто, т.к. Far не сообщает плагинам о событии смены папки в панели.

User avatar
sToLp
Posts: 774
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 58 times
Been thanked: 5 times

Пользовательская сортировка файлов с макросами.

Post by sToLp » Thu 23 Jun, 2016 17:34

Shmuel wrote:Не надо лукавить, пожалуйста, насчёт "раскопал".
Отчего же? Я же не написал, что вот сейчас раскопал. А когда-то, да, именно неожиданно обнаружил. А теперь вот макрос опять же неожиданно для меня оказался полезным с неожиданной стороны. Хотя, м.б. слово "раскопал" и не совсем точное, ведь макрос не был "зарыт" — и в этом Вы правы.
Что значит "оптимальный"? Это зависит от критериев оптимальности.
В данном случае простой, в т.ч. с вероятным упрощением регекса и "вживлением" его в макрос, решающий только одну задачу, без дополнительных наворотов.
Это сделать не просто, т.к. Far не сообщает плагинам о событии смены папки в панели.
Понятно, возможно задача "на будущее". Согласитесь, что ведь полезным было бы иметь возможность настройки в одних папках автоматически одну сортировку применять, а в других другую.

Shmuel
Posts: 5236
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 152 times

Пользовательская сортировка файлов с макросами.

Post by Shmuel » Fri 24 Jun, 2016 07:10

sToLp
Я бы с удовольствием вам помог, но разбираться в чужих нетривиальных макросах времени нет. Имеет смысл обратиться к автору макроса.

По поводу автоматической сортировки в разных папках по-разному - можно сделать "полуавтоматическую". То-есть написать макрос, который в зависимости от папки, отображённой в панели, будет вызывать тот или иной режим сортировки.

User avatar
sToLp
Posts: 774
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 58 times
Been thanked: 5 times

Пользовательская сортировка файлов с макросами.

Post by sToLp » Fri 24 Jun, 2016 15:01

Shmuel wrote:разбираться в чужих нетривиальных макросах времени нет
Так в том то всё и дело, что как раз было бы желательно иметь более простой и независимый макрос. В т.ч. чтобы исключить опасность сбоя (например, в результате неких усовершенствований в Фаре) сложного макроса, который нельзя было бы поправить самостоятельно. То есть нужен бы именно простой макрос на простой основе.
имеет смысл обратиться к автору макроса
Подумаю, конечно, но пока полагаю, что теребить Alexyz21 как-то не очень удобно, ведь его то макрос вполне работает. И на текущий момент мне удалось привязанный к этому макросу работающий регекс сделать чуть-чуть, на 26 знакомест, покороче: теперь он длиной 428 знаков вместо прежних 452. Однако в целом всё же он больше похож на и этим продолжает меня смущать — как-то не хочется верить, что его нельзя сделать существенно короче и читабельнее.
написать макрос, который в зависимости от папки, отображённой в панели, будет вызывать тот или иной режим сортировки
Первое, что я сделал, после того как получилась нужная мне сортировка, это сформировал алиас "макросы=lua:print("CD %farProfile%\\Macros\\scripts\\") Keys("Enter") Panel.SetCustomSortMode(117,0)". Он одновременно устанавливает на панели Фара папку с макросами и соответствующий режим сортировки в ней файлов.

Но Вы то, наверняка, имеете ввиду более универсальный способ. Однако я не догадываюсь как это можно было бы сделать.

Shmuel
Posts: 5236
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 152 times

Пользовательская сортировка файлов с макросами.

Post by Shmuel » Sat 25 Jun, 2016 06:00

sToLp
Приведите здесь (или в личку) уже отсортированный по вашим критериям список файлов - чтобы было ясно, как должна выглядеть панель после данной сортировки.

User avatar
sToLp
Posts: 774
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 58 times
Been thanked: 5 times

Пользовательская сортировка файлов с макросами.

Post by sToLp » Sat 25 Jun, 2016 09:23

Shmuel

отсортированного списка файлов.

Для пробы сделал следующий "полуавтоматически" устанавливающего желательную сортировку в папках с макросами — какое ни какое, а всё-таки продвижение.

User avatar
sToLp
Posts: 774
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 58 times
Been thanked: 5 times

Пользовательская сортировка файлов с макросами.

Post by sToLp » Sat 25 Jun, 2016 16:16

Ещё один списка файлов с макросами, реально отсортированных по заданной упорядоченности.

Shmuel
Posts: 5236
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 152 times

Пользовательская сортировка файлов с макросами.

Post by Shmuel » Sat 25 Jun, 2016 16:49

sToLp
Ваши требования к сортировке довольно сложные, поэтому не исключено, что использование вашего текущего решения - это как раз то, что нужно. Работает - и ладно, не вижу причин, почему оно должно сломаться в будущем.

Я попробовал альтернативный подход (сортировка лишь частично совпадает с вашей, то-есть надо дорабатывать), но похоже, что ваш подход предпочтительней. Да, и не ожидайте от меня продолжения, его не будет, нет времени.

User avatar
sToLp
Posts: 774
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 58 times
Been thanked: 5 times

Пользовательская сортировка файлов с макросами.

Post by sToLp » Sat 25 Jun, 2016 19:14

Shmuel

Поработал с Вашим макросом и убедился, что при всей его относительной простоте (по сравнению с макросом Alexyz21) он достаточно основательно решает задачу, обозначенную в первом посте темы. То есть данный макрос, на мой взгляд, вполне применим на практике. А то, что он не учитывает комбинации с правыми модификаторами RCtrl, RAlt и RShift, то, полагаю, что это вполне можно будет решить каким-нибудь простым подбором соответствующей формы их записи. Применяются же правые модификаторы изредка, а в комбинациях сразу из трёх клавиш-модификаторов воспринимаются с трудом, по крайней мере мною. А других существенных отличий я не наблюдаю.

По моему разумению, принципиально вопрос Вами решён. В итоге, примите, пожалуйста, мою благодарность!

Shmuel
Posts: 5236
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 152 times

Пользовательская сортировка файлов с макросами.

Post by Shmuel » Sat 25 Jun, 2016 20:33

sToLp wrote: не учитывает комбинации с правыми модификаторами RCtrl, RAlt и RShift
1. LShift и RShift не существуют в системе макросов Far. Есть только Shift.
2. Попробуйте этот вариант, он учитывает правые модификаторы. ОН НЕ ТЕСТИРОВАЛСЯ.

User avatar
sToLp
Posts: 774
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 58 times
Been thanked: 5 times

Пользовательская сортировка файлов с макросами.

Post by sToLp » Sat 25 Jun, 2016 20:35

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

User avatar
sToLp
Posts: 774
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 58 times
Been thanked: 5 times

Пользовательская сортировка файлов с макросами.

Post by sToLp » Sat 25 Jun, 2016 21:06

Shmuel wrote: 1. LShift и RShift не существуют в системе макросов Far. Есть только Shift.
Да. Спасибо, что напомнили. Я действительно зациклился на симметрии когда составлял регекс-кроссворд, и совсем позабыл про Shift.
Shmuel wrote:2. Попробуйте этот вариант, он учитывает правые модификаторы. ОН НЕ ТЕСТИРОВАЛСЯ.
Попробовал. С правыми модификаторами работает, но сортирует чуточку : ]) — то есть RCtrlRAlt стоит после [{CtrlShift, а надо бы — наоборот.

Shmuel
Posts: 5236
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 152 times

Пользовательская сортировка файлов с макросами.

Post by Shmuel » Sat 25 Jun, 2016 21:32

sToLp wrote: а надо бы — наоборот.

User avatar
sToLp
Posts: 774
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 58 times
Been thanked: 5 times

Пользовательская сортировка файлов с макросами.

Post by sToLp » Sat 25 Jun, 2016 21:46

Shmuel
Теперь вроде бы . И изначальная задача решена полностью.

А не поясните, что означают "магические" числа в первом случае 100, 200, 300, 400, 500 и 1000, а во втором — 100, 200, 400, 800, 1600 и 2000?

Shmuel
Posts: 5236
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 152 times

Пользовательская сортировка файлов с макросами.

Post by Shmuel » Sat 25 Jun, 2016 22:06

sToLp wrote: А не поясните, что означают "магические" числа
Это "вес" данного символа при сортировке. При прямой сортировке, чем больше суммарный вес, тем дальше от начала (т.е. ниже в панели) будет данный файл. И названия функций w1 ... w4 - от слова "weight" (вес).

Post Reply

Return to “Нужна помощь”