Аналог плагина MkDir

Здесь обсуждается всё, что касается макросов.
Yegor
Posts: 1441
Joined: Mon 04 Apr, 2005 13:41
Location: San Ramon, CA / Kharkov, UA
Has thanked: 46 times
Been thanked: 74 times

Аналог плагина MkDir

Post by Yegor »

Latest post of the previous page:

Shmuel wrote: Fri 06 Jun, 2025 08:26 Если расширять дальше, то напрашивается возможно функция-генератор
Именно это я и имел в виду, когда писал
Yegor wrote: Fri 06 Jun, 2025 00:25 или метод, возвращающий массив или таблицу (что там в lua есть)
Спасибо
Мы не можем ждать милостей от Фара, взять их у него — наша задача! (C) Мичурин
Volodya
Posts: 293
Joined: Thu 31 Mar, 2005 19:41
Has thanked: 52 times
Been thanked: 1 time

Аналог плагина MkDir

Post by Volodya »

Так как теперь, можно задавать lua макросы как template, то появилась возможность создания "динамических" директорий. То есть. Создаем алиас lua:fn Apanel.Current Тогда запрос A\<fn> создаст директорию A с поддиректорией с именем как у текущего файла. Зачем это нужно пока не знаю, но возможность есть. Может быть более разумно брать файл с противоположной панели.
Shmuel
Posts: 7044
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 44 times
Been thanked: 591 times

Аналог плагина MkDir

Post by Shmuel »

Volodya wrote: Sat 07 Jun, 2025 04:45 возможность создания "динамических" директорий
Интересно, эта идея не приходила в голову :)
Немного развивая её, можно (уже с существующим скриптом) создать алиас, вставляющий перечисление папок текущей директории.
И возможно имеет смысл добавить в диалог чекбокс "Создавать на пассивной панели".
Shmuel
Posts: 7044
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 44 times
Been thanked: 591 times

Аналог плагина MkDir

Post by Shmuel »

Девятая версия.
  • mkdir.alias стал Lua-файлом и, следовательно, несовместим с прежними версиями.
  • Для пользования новой версией придётся переделать этот файл.
  • Алиасы определяются как глобальные переменные в этом файле. Подробнее - в хелпе.
  • Первичная мотивация для данного изменения - возможность написания многострочных Lua-функций.
  • Будут вопросы - задавайте.

mkdir.7z
(7.93 KiB) Downloaded 9 times
tstr
Posts: 561
Joined: Thu 16 Apr, 2009 16:15
Has thanked: 23 times
Been thanked: 10 times

Аналог плагина MkDir

Post by tstr »

Ну раз алиас теперь м.б. функцией, то хочется передавать ей параметр…
например уточнять формат даты для <date>
или как писали выше - передать параметром пассивную панель.
кстати… а есть какой-то интерфейс разворачивать special symbols (из Apply Commands и File Associations) в полные строки там, где это возможно?
Shmuel
Posts: 7044
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 44 times
Been thanked: 591 times

Аналог плагина MkDir

Post by Shmuel »

tstr wrote: Sat 07 Jun, 2025 15:51 Ну раз алиас теперь м.б. функцией, то хочется передавать ей параметр…
Вставляете в функцию алиаса far.InputBox() и вводите то, что надо.
Или можно сделать несколько алиасов, вызывая общую (локальную) функцию с разными параметрами.
tstr wrote: Sat 07 Jun, 2025 15:51 передать параметром пассивную панель
Это вижу как чекбокс в диалоге. Или вы имеете в виду индивидуально по каждому алиасу?
tstr wrote: Sat 07 Jun, 2025 15:51 а есть какой-то интерфейс разворачивать special symbols (из Apply Commands и File Associations) в полные строки там, где это возможно?
Что-то не припоминаю, чтобы был такой интерфейс.
Last edited by Shmuel on Sat 07 Jun, 2025 16:04, edited 1 time in total.
Shmuel
Posts: 7044
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 44 times
Been thanked: 591 times

Аналог плагина MkDir

Post by Shmuel »

Десятая версия (последняя, которую выкладываю здесь).
В дальнейшем можно брать отсюда: https://github.com/shmuz/luafar2m/tree/ ... hell/mkdir
  1. Исправлен баг
  2. Добавлен чекбокс "на Пассивной панели"

mkdir.7z
(8.04 KiB) Downloaded 27 times
Volodya
Posts: 293
Joined: Thu 31 Mar, 2005 19:41
Has thanked: 52 times
Been thanked: 1 time

Аналог плагина MkDir

Post by Volodya »

Следующая идея. Если alias это lua-выражение, то нельзя ли добавить какую-нибудь команду типа include, которая бы позволяла вставлять lua file. Использование. Хочу создать директорию с именем равным времени создания текущего файла. Написать такой макрос, не очень сложно, но запихнуть его в alias будет проблематично.
Shmuel
Posts: 7044
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 44 times
Been thanked: 591 times

Аналог плагина MkDir

Post by Shmuel »

Volodya wrote: Mon 09 Jun, 2025 05:41 Хочу создать директорию с именем равным времени создания текущего файла.
Делаем непосредственно в файле mkdir.alias. Имя алиаса и форматирование результата настройте по своему вкусу.

Code: Select all

curftime = function()
  local item = panel.GetCurrentPanelItem(nil,1)
  local st = win.FileTimeToSystemTime(win.FileTimeToLocalFileTime(item.CreationTime))
  return ("%04d-%02d-%02d %02d-%02d-%02d"):format(
          st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond)
end
virjokk
Posts: 4
Joined: Mon 04 Oct, 2010 19:20

Аналог плагина MkDir

Post by virjokk »

Насколько сложно реализовать предпросмотр того, какие папки будут созданы, что-то вроде режима "WhatIF"? Например, в виде списка, выводимого в файл или в сообщение. Просто пару раз ошибся при создании шаблонов с диапазонами - загадил полдиска папками с жуткими именами
Shmuel
Posts: 7044
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 44 times
Been thanked: 591 times

Аналог плагина MkDir

Post by Shmuel »

virjokk wrote: Tue 10 Jun, 2025 17:39 Насколько сложно реализовать предпросмотр того, какие папки будут созданы
Несложно, хотя и не 5 минут. Более того, при отладке я предпросмотр использовал.
Видимо надо будет добавить кнопку на диалоге "Предпросмотр".
Shmuel
Posts: 7044
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 44 times
Been thanked: 591 times

Аналог плагина MkDir

Post by Shmuel »

Версия 11: добавлена кнопка Предпросмотр.
Для работы предпросмотра требуется Far >= 3.0.6484.

Версия 12: Снято требование к версии Far3. Можно и более старые.
Last edited by Shmuel on Tue 10 Jun, 2025 21:45, edited 1 time in total.
Post Reply

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