Lua shell — запуск lua/moon скриптов из командной строки

Здесь обсуждается всё, что касается макросов.
User avatar
John Doe
Бюрократ
Posts: 12287
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 164 times

Lua shell — запуск lua/moon скриптов из командной строки

Post by John Doe » Sun 17 Sep, 2017 15:09

Назначение данной утилиты — реализовать запуск lua/moon скриптов из командной строки
максимально естественным образом, наподобие команд оболочки, и наравне с ними.

Точно так же скрипты можно запускать просто по имени, не задумываясь где именно
они расположены (в текущей папке, или в любом месте PATH).

Область действия не ограничена панелями, командная строка доступна в любой области
фара, с автодополнением и историей: отовсюду можно запустить скрипт, с указанными
аргументами.

Скриптам предоставляется ряд средств, в числе которых — простое обращение к другим
скриптам доступным в PATH, что позволяет сформировать собственную экосистему,
в некотором роде альтернативную модулям Lua.

User avatar
HaRT
Moderator
Posts: 8751
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 81 times
Been thanked: 148 times

Script utils — запуск lua/moon скриптов из командной строки

Post by HaRT » Sun 17 Sep, 2017 20:33

Может, не стоит занимать под эту специализированную задачу столь общий префикс?
Предлагаю run/exec/invoke/spawn или luna/loon/mooa/loona/…
Фар есть инструмент, а не нянька. © 2009 DrKnS

Smitis
Posts: 1574
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 18 times
Been thanked: 32 times

Script utils — запуск lua/moon скриптов из командной строки

Post by Smitis » Sun 17 Sep, 2017 22:36

HaRT,
run и exec тоже достаточно общие префиксы. У меня одно время такие были.
Разум когда-нибудь победит.

User avatar
cmd.exe
Posts: 364
Joined: Fri 16 Apr, 2010 18:26
Location: Нижний Новгород
Has thanked: 179 times
Been thanked: 5 times
Contact:

Script utils — запуск lua/moon скриптов из командной строки

Post by cmd.exe » Sun 17 Sep, 2017 23:54

sulu идеально по мойму
I've been using Vim for about 2 years now, mostly because I can't figure out how to exit it. (c) I Am Devloper
I know nothing except the fact of my ignorance. (с) Socrates

User avatar
DrKnS
Posts: 5283
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 6 times
Been thanked: 206 times

Script utils — запуск lua/moon скриптов из командной строки

Post by DrKnS » Mon 18 Sep, 2017 07:40

cmd.exe wrote:
Sun 17 Sep, 2017 23:54
sulu

Smitis
Posts: 1574
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 18 times
Been thanked: 32 times

Script utils — запуск lua/moon скриптов из командной строки

Post by Smitis » Mon 18 Sep, 2017 08:30

xlua - eXtented/eXecute lua
Разум когда-нибудь победит.

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

Script utils — запуск lua/moon скриптов из командной строки

Post by John Doe » Mon 18 Sep, 2017 09:32

HaRT wrote:
Sun 17 Sep, 2017 20:33
Может, не стоит занимать под эту специализированную задачу столь общий префикс?
Учитывая сколько всяких новых плагинов появляется каждый день полагаю беспокоиться не о чем, префиксов хватит на всех.

И в любом случае, никто же не захардкодил префикс, наоборот, его настройка вынесена в опции.

2useven10
Posts: 3839
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 4 times
Been thanked: 159 times

Script utils — запуск lua/moon скриптов из командной строки

Post by 2useven10 » Mon 18 Sep, 2017 11:12

Smitis wrote:
Mon 18 Sep, 2017 08:30
xlua
По-моему одна буква лишняя.

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

Script utils — запуск lua/moon скриптов из командной строки

Post by John Doe » Mon 18 Sep, 2017 13:06

Пример утилиты, которую я использую через util:

filesmenu <mask> <cmd> <path> В папке <path> (по умолчанию ".") рекурсивно ищет файлы подходящие под <mask> (по умолчанию *.exe). Найденные отображает в виде меню, при выборе — запускает в командной строке, предваряя командой <cmd> (если задана). Кроме того, в меню доступны клавиши F3, F4, CtrlPgUp, служащие для вставки префиксов view:, edit:, goto:. Пример использования, через консольные алиасы: ----- chm=util:@filesmenu *.chm "" %FARHOME%\Encyclopedia cc=util:@filesmenu changelog* edit: %FARHOME%\Plugins gg=util:@filesmenu $* ----- chm — список chm-файлов из папки Encyclopedia сс — список changelog* из папки Plugins gg <mask> — список файлов <mask> в текущей папке с подпапками
Attachments
filesmenu.lua
(2.12 KiB) Downloaded 273 times

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

Script utils — запуск lua/moon скриптов из командной строки

Post by John Doe » Mon 18 Sep, 2017 13:17

P.S.
Предлагаю в данной теме делиться подобными утилитками.

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

Script utils — запуск lua/moon скриптов из командной строки

Post by John Doe » Mon 18 Sep, 2017 13:43

Есть мысль в перспективе сделать подобие командной строки для редактора, откуда можно было бы запускать скрипты с параметрами.

В простейшим виде для этого ничего особо не надо.
Потом, вероятно, потребуется какое-то апи, обеспечивающее дополнительные удобства.
Продумать, что вообще требуется... На вскидку, неплохо бы предусмотреть объединение команд в цепочки.
Emacs и vim бы глянуть..

А в нашем PowerShellFar есть такое?

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

Script utils — запуск lua/moon скриптов из командной строки

Post by John Doe » Wed 20 Sep, 2017 13:26

Обновление скрипта в шапке.
v1.1
  • Панели теперь гасятся по мере надобности, при использовании функции print.
    Для запуска lua/moon-скриптов удобно использовать ассоциацию *.lua,*.moon | util:"!\!.!"
  • Символ @ используется для запрета отображения выполняемой команды на экране (полезно для "Применить команду").
    Если не указан, то команда отображается только если скрипт использовал print().
    Символ * используется для того, чтобы отобразить выполняемую команду в любом случае.
  • Символ = позволяет отобразить возвращаемые значения скрипта в виде списка.
    Таблицы можно просматривать (опционально: рекомендуются модули "le" и inspect)
    Если после = в командной строке не указан файл, то отображаются значения, возвращённые последним выполненным скриптом.
  • Опционально, эти значения также сохраняются и в глобальной переменной с указанным именем, по умолчанию LastCmdLineResult.
    Опционально, для просмотра этих значений предусмотрен макрос, по умолчанию назначенный на Ctrl-Shift-L.

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

Script utils — запуск lua/moon скриптов из командной строки

Post by John Doe » Wed 20 Sep, 2017 16:09

Со следующей версии скрипты будут искаться не в заданной настройками папке, а в PATH, и упростится рекомендованный способ использования (от префикса можно уйти, используя возможности фара).

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

Script utils — запуск lua/moon скриптов из командной строки

Post by John Doe » Sun 24 Sep, 2017 16:45

waitkey.lua

Code: Select all

local i = 0
repeat
  local key = mf.waitkey()
  i = i+1
  print(i,key)
until key=="Esc"
Может быть полезно для изучения названий комбинаций клавиш в фаре

Если положить в Macros\Utils, настроить PATHEXT, и добавить ассоциацию, то можно запускать из командной строки просто как "waitkey".

Преимущества перед каким-либо аналогичным макросом:
  • крайняя простота таких примитивных утилит, не нужно организовывать диалоги, и даже (хоть и элементарная) обвязка в Macro {...} не нужна.
  • не приходится занимать клавиши (и помнить комбинации)

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

Script utils — запуск lua/moon скриптов из командной строки

Post by sToLp » Sun 24 Sep, 2017 18:14

John Doe wrote:
Sun 24 Sep, 2017 16:45
waitkey.lua
У меня установка скрипта вызвала .

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

Script utils — запуск lua/moon скриптов из командной строки

Post by John Doe » Sun 24 Sep, 2017 19:01

Он не должен быть в scripts

Post Reply

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