Пользовательская сортировка файлов с макросами.
Пользовательская сортировка файлов с макросами.
Как-то незаметно постепенно скопилась у меня куча разномастных макросов, и задумал я упорядочить их по-своему. В т.ч. в именах файлов употреблять сокращения: [ вместо Ctrl, соответственно ] — вместо RCtrl, ( и ) — вместо Alt и RAlt, { и } — вместо Shift и RShift. И хотелось привычно их по ключу key, обозначаемому в начале имён файлов с макросами.
При этом с составлением макроса необходимой пользовательской сортировки у меня никак не получилось. Более того, я явно запутался и не смог понять, как в принципе привинтить к пользовательской сортировке регекс. Да и в составлении самого регекса не очень-то был уверен. Однако мне всё же повезло, поскольку я раскопал на ру-борде готовый макрос-комбайн Panel.CustomSortByName.lua авторства Alexyz21. И с нескольких попыток мне удалось применить-таки в этом макросе составленный мною . И, в принципе, таким образом задача желательной мне сортировки файлов с макросами как бы и решена.
Однако такое решение, всё-таки несоразмерно как из пушки по воробьям и поэтому у меня есть следующие две просьбы к сообществу.
1. Подскажите, каким всё-таки должен быть оптимальный макрос, решающий данную локальную задачу пользовательской сортировки файлов с макросами?
2. Как сделать, чтобы при выставлении на панели Фара папки с макросами %FarProfile%\Macros\ или её подпапок файлы в них автоматически сортировались бы подобным показанному выше (под спойлером "сортировать") образом, а при уходе из сферы файлов с макросами сортировались бы по имени?
При этом с составлением макроса необходимой пользовательской сортировки у меня никак не получилось. Более того, я явно запутался и не смог понять, как в принципе привинтить к пользовательской сортировке регекс. Да и в составлении самого регекса не очень-то был уверен. Однако мне всё же повезло, поскольку я раскопал на ру-борде готовый макрос-комбайн Panel.CustomSortByName.lua авторства Alexyz21. И с нескольких попыток мне удалось применить-таки в этом макросе составленный мною . И, в принципе, таким образом задача желательной мне сортировки файлов с макросами как бы и решена.
Однако такое решение, всё-таки несоразмерно как из пушки по воробьям и поэтому у меня есть следующие две просьбы к сообществу.
1. Подскажите, каким всё-таки должен быть оптимальный макрос, решающий данную локальную задачу пользовательской сортировки файлов с макросами?
2. Как сделать, чтобы при выставлении на панели Фара папки с макросами %FarProfile%\Macros\ или её подпапок файлы в них автоматически сортировались бы подобным показанному выше (под спойлером "сортировать") образом, а при уходе из сферы файлов с макросами сортировались бы по имени?
-
- Posts: 6836
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
Пользовательская сортировка файлов с макросами.
Не надо лукавить, пожалуйста, насчёт "раскопал".
Что значит "оптимальный"? Это зависит от критериев оптимальности.
Это сделать не просто, т.к. Far не сообщает плагинам о событии смены папки в панели.
Пользовательская сортировка файлов с макросами.
Отчего же? Я же не написал, что вот сейчас раскопал. А когда-то, да, именно неожиданно обнаружил. А теперь вот макрос опять же неожиданно для меня оказался полезным с неожиданной стороны. Хотя, м.б. слово "раскопал" и не совсем точное, ведь макрос не был "зарыт" — и в этом Вы правы.Shmuel wrote:Не надо лукавить, пожалуйста, насчёт "раскопал".
В данном случае простой, в т.ч. с вероятным упрощением регекса и "вживлением" его в макрос, решающий только одну задачу, без дополнительных наворотов.Что значит "оптимальный"? Это зависит от критериев оптимальности.
Понятно, возможно задача "на будущее". Согласитесь, что ведь полезным было бы иметь возможность настройки в одних папках автоматически одну сортировку применять, а в других другую.Это сделать не просто, т.к. Far не сообщает плагинам о событии смены папки в панели.
-
- Posts: 6836
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
Пользовательская сортировка файлов с макросами.
sToLp
Я бы с удовольствием вам помог, но разбираться в чужих нетривиальных макросах времени нет. Имеет смысл обратиться к автору макроса.
По поводу автоматической сортировки в разных папках по-разному - можно сделать "полуавтоматическую". То-есть написать макрос, который в зависимости от папки, отображённой в панели, будет вызывать тот или иной режим сортировки.
Я бы с удовольствием вам помог, но разбираться в чужих нетривиальных макросах времени нет. Имеет смысл обратиться к автору макроса.
По поводу автоматической сортировки в разных папках по-разному - можно сделать "полуавтоматическую". То-есть написать макрос, который в зависимости от папки, отображённой в панели, будет вызывать тот или иной режим сортировки.
Пользовательская сортировка файлов с макросами.
Так в том то всё и дело, что как раз было бы желательно иметь более простой и независимый макрос. В т.ч. чтобы исключить опасность сбоя (например, в результате неких усовершенствований в Фаре) сложного макроса, который нельзя было бы поправить самостоятельно. То есть нужен бы именно простой макрос на простой основе.Shmuel wrote:разбираться в чужих нетривиальных макросах времени нет
Подумаю, конечно, но пока полагаю, что теребить Alexyz21 как-то не очень удобно, ведь его то макрос вполне работает. И на текущий момент мне удалось привязанный к этому макросу работающий регекс сделать чуть-чуть, на 26 знакомест, покороче: теперь он длиной 428 знаков вместо прежних 452. Однако в целом всё же он больше похож на и этим продолжает меня смущать — как-то не хочется верить, что его нельзя сделать существенно короче и читабельнее.имеет смысл обратиться к автору макроса
Первое, что я сделал, после того как получилась нужная мне сортировка, это сформировал алиас "макросы=lua:print("CD %farProfile%\\Macros\\scripts\\") Keys("Enter") Panel.SetCustomSortMode(117,0)". Он одновременно устанавливает на панели Фара папку с макросами и соответствующий режим сортировки в ней файлов.написать макрос, который в зависимости от папки, отображённой в панели, будет вызывать тот или иной режим сортировки
Но Вы то, наверняка, имеете ввиду более универсальный способ. Однако я не догадываюсь как это можно было бы сделать.
-
- Posts: 6836
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
Пользовательская сортировка файлов с макросами.
sToLp
Приведите здесь (или в личку) уже отсортированный по вашим критериям список файлов - чтобы было ясно, как должна выглядеть панель после данной сортировки.
Приведите здесь (или в личку) уже отсортированный по вашим критериям список файлов - чтобы было ясно, как должна выглядеть панель после данной сортировки.
Пользовательская сортировка файлов с макросами.
Shmuel
отсортированного списка файлов.
Для пробы сделал следующий "полуавтоматически" устанавливающего желательную сортировку в папках с макросами — какое ни какое, а всё-таки продвижение.
отсортированного списка файлов.
Для пробы сделал следующий "полуавтоматически" устанавливающего желательную сортировку в папках с макросами — какое ни какое, а всё-таки продвижение.
-
- Posts: 6836
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
Пользовательская сортировка файлов с макросами.
sToLp
Ваши требования к сортировке довольно сложные, поэтому не исключено, что использование вашего текущего решения - это как раз то, что нужно. Работает - и ладно, не вижу причин, почему оно должно сломаться в будущем.
Я попробовал альтернативный подход (сортировка лишь частично совпадает с вашей, то-есть надо дорабатывать), но похоже, что ваш подход предпочтительней. Да, и не ожидайте от меня продолжения, его не будет, нет времени.
Ваши требования к сортировке довольно сложные, поэтому не исключено, что использование вашего текущего решения - это как раз то, что нужно. Работает - и ладно, не вижу причин, почему оно должно сломаться в будущем.
Я попробовал альтернативный подход (сортировка лишь частично совпадает с вашей, то-есть надо дорабатывать), но похоже, что ваш подход предпочтительней. Да, и не ожидайте от меня продолжения, его не будет, нет времени.
Пользовательская сортировка файлов с макросами.
Shmuel
Поработал с Вашим макросом и убедился, что при всей его относительной простоте (по сравнению с макросом Alexyz21) он достаточно основательно решает задачу, обозначенную в первом посте темы. То есть данный макрос, на мой взгляд, вполне применим на практике. А то, что он не учитывает комбинации с правыми модификаторами RCtrl, RAlt и RShift, то, полагаю, что это вполне можно будет решить каким-нибудь простым подбором соответствующей формы их записи. Применяются же правые модификаторы изредка, а в комбинациях сразу из трёх клавиш-модификаторов воспринимаются с трудом, по крайней мере мною. А других существенных отличий я не наблюдаю.
По моему разумению, принципиально вопрос Вами решён. В итоге, примите, пожалуйста, мою благодарность!
Поработал с Вашим макросом и убедился, что при всей его относительной простоте (по сравнению с макросом Alexyz21) он достаточно основательно решает задачу, обозначенную в первом посте темы. То есть данный макрос, на мой взгляд, вполне применим на практике. А то, что он не учитывает комбинации с правыми модификаторами RCtrl, RAlt и RShift, то, полагаю, что это вполне можно будет решить каким-нибудь простым подбором соответствующей формы их записи. Применяются же правые модификаторы изредка, а в комбинациях сразу из трёх клавиш-модификаторов воспринимаются с трудом, по крайней мере мною. А других существенных отличий я не наблюдаю.
По моему разумению, принципиально вопрос Вами решён. В итоге, примите, пожалуйста, мою благодарность!
-
- Posts: 6836
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
Пользовательская сортировка файлов с макросами.
1. LShift и RShift не существуют в системе макросов Far. Есть только Shift.
2. Попробуйте этот вариант, он учитывает правые модификаторы. ОН НЕ ТЕСТИРОВАЛСЯ.
Пользовательская сортировка файлов с макросами.
Несколько уточнил , который при входе по Enter в папки с файлами, содержащими макросы, устанавливает соответствующую сортировку, а при входе в иные папки — сортировку "по имени".
Пользовательская сортировка файлов с макросами.
Да. Спасибо, что напомнили. Я действительно зациклился на симметрии когда составлял регекс-кроссворд, и совсем позабыл про Shift.Shmuel wrote: 1. LShift и RShift не существуют в системе макросов Far. Есть только Shift.
Попробовал. С правыми модификаторами работает, но сортирует чуточку : ]) — то есть RCtrlRAlt стоит после [{ — CtrlShift, а надо бы — наоборот.Shmuel wrote:2. Попробуйте этот вариант, он учитывает правые модификаторы. ОН НЕ ТЕСТИРОВАЛСЯ.
Пользовательская сортировка файлов с макросами.
Shmuel
Теперь вроде бы . И изначальная задача решена полностью.
А не поясните, что означают "магические" числа в первом случае 100, 200, 300, 400, 500 и 1000, а во втором — 100, 200, 400, 800, 1600 и 2000?
Теперь вроде бы . И изначальная задача решена полностью.
А не поясните, что означают "магические" числа в первом случае 100, 200, 300, 400, 500 и 1000, а во втором — 100, 200, 400, 800, 1600 и 2000?