Работа с консольными алиасами

Здесь выкладываются готовые к использованию макросы и скрипты.
User avatar
John Doe
Бюрократ
Posts: 14580
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

Работа с консольными алиасами

Post by John Doe »

Far поддерживает запуск консольных алиасов (псевдонимов), однако об удобстве их создания, загрузки и редактирования мы должны позаботиться сами.
Решению этой задачи и посвящён предлагаемый набор скриптов.



Основная функция данного скрипта — автозагрузка файла алиасов при старте фара, а также после каждой правки файла
  • По умолчанию в качестве файла алиасов используется alias.doskey, который должен быть расположен рядом со скриптом.
  • Кодировка файла: OEM или UTF-8 (c BOM).
  • Формат файла: типичный ini-файл, разбитый на секции вида [far.exe], [cmd.exe].

    Алиасы секции far.exe имеют приоритет.
  • В качестве комментариев можно использовать строки, начинающиеся на ;=.
Дополнительные функции доступны через префикс командной строки alias:.
  • alias: [имя_алиаса] — открывает файл алиасов в редакторе, и предпринимает попытку найти нужный алиас (если указан).
    После закрытия редактора алиасы перезагружаются (при наличии изменений).
  • alias: /file [имя_файла] — (пере)загружает файл алиасов. Если файл не указан, то загружается основной.
  • alias: имя_алиаса=[значение] — позволяет создавать и удалять алиасы (если значение не указано).
    Созданные таким образом алиасы действительны только в текущей сессии фара, а чтобы сделать их постоянными необходимо внести их в файл алиасов.
Рекомендуется в первую очередь назначить алиас a=alias:, и в дальнейшем использовать именно его вместо полного префикса.
(см. этот и другие примеры в прилагаемом alias.sample.doskey).

Примечание:
  • Имя и путь к файлу алиасов можно переназначить изменяя опции в начале скрипта.
    Чтобы после каждого обновления скрипта не приходилось вручную восстанавливать изменённые значения опций
    рекомендуется использовать возможности cfgscript из пакета ScriptsBrowser.

Требуется FAR 3 build >=4324

Скачать: https://github.com/FarManagerLegacy/Alias
Last edited by John Doe on Mon 07 Aug, 2017 11:03, edited 1 time in total.
User avatar
citRiks
Posts: 1732
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 103 times

Работа с консольными алиасами

Post by citRiks »

Latest post of the previous page:

Xerox,
Благодарю за примеры и за ссылку. А то я смотрел по справке doskey /?>doskey.txt, а из неё отвлечённо без конкретных примеров трудно понять. Но теперь, на основании сегодняшней информации я вполне согласен с тем, что $T и $1-9 желательно бы прикрутить и в Фар.
gene.pavlovsky
Posts: 173
Joined: Tue 16 Feb, 2010 17:55
Location: Luxembourg
Has thanked: 13 times
Been thanked: 9 times
Contact:

Работа с консольными алиасами

Post by gene.pavlovsky »

Уважаемый John Doe!

Много лет с удовольствием пользовался вашим скриптом, более старой его версией (там в шапке написано "--requires FAR 3 build >=3854 (EF_OPENMODE_USEEXISTING)").
Сегодня обнаружил, что под Windows 10, вызовы os.execute в этом скрипте, вызывают такую проблему.
Смотрю, что в текущей версии скрипта os.execute не используется, ну и решил обновиться.

С новой версией при запуске Far в консоли следующее сообщение: "Console aliases loading...is incorrect."
Что именно incorrect, непонятно. Сами алиасы работают, по крайней мере те, которые я попробовал.
В моём alias.doskey файле какие-то некритичные ошибки? Как их найти?

P.S. Если запустить команду a /file, то появляется сообщение: "Console aliases loading...", без "is incorrect".
Last edited by gene.pavlovsky on Sat 04 Dec, 2021 22:25, edited 1 time in total.
User avatar
John Doe
Бюрократ
Posts: 14580
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

Работа с консольными алиасами

Post by John Doe »

John Doe wrote: Sat 08 Mar, 2014 23:52 "Console aliases loading...is incorrect."
Похоже что "is incorrect" это часть сообщения, которое затирается при старте моим скриптом.
Попробуйте без alias, и посмотрите что там сказано.
Или укоротите текст, чтобы не затирал сообщение.
https://t.me/FarManager — Telegram чат
gene.pavlovsky
Posts: 173
Joined: Tue 16 Feb, 2010 17:55
Location: Luxembourg
Has thanked: 13 times
Been thanked: 9 times
Contact:

Работа с консольными алиасами

Post by gene.pavlovsky »

Об этом я как-то не подумал.
Реальное сообщение там "The syntax of the command is incorrect."
Один мой скрипт имеет какую-то проблему, сейчас буду разбираться.
Спасибо за помощь!
User avatar
phidel
Posts: 104
Joined: Wed 29 Jun, 2011 17:21
Has thanked: 30 times
Been thanked: 6 times
Contact:

Работа с консольными алиасами

Post by phidel »

Приветствую.
Спасибо за отличный макрос.
Скажите, есть ли возможность подставить в качестве параметра имя файла на котором сейчас стоит курсор в far manager? (вместо $*)
User avatar
John Doe
Бюрократ
Posts: 14580
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

Работа с консольными алиасами

Post by John Doe »

lua:print"somecommand "; Keys"CtrlF Enter"
https://t.me/FarManager — Telegram чат
User avatar
phidel
Posts: 104
Joined: Wed 29 Jun, 2011 17:21
Has thanked: 30 times
Been thanked: 6 times
Contact:

Работа с консольными алиасами

Post by phidel »

Все просто )
User avatar
phidel
Posts: 104
Joined: Wed 29 Jun, 2011 17:21
Has thanked: 30 times
Been thanked: 6 times
Contact:

Работа с консольными алиасами

Post by phidel »

мне бы хотелось заменить команду ren на алиас, чтобы переименование файла в командной строке работало через lua-макрос с сохранением описания файла (ren теряет описание)
Через Keys 'F6' не получается, так как там только поле ввода для нового названия.
Есть ли команда lua для переименования файла?
User avatar
John Doe
Бюрократ
Posts: 14580
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

Работа с консольными алиасами

Post by John Doe »

Для переименования ShiftF6 лучше.
phidel wrote: Sun 30 Mar, 2025 22:27 так как там только поле ввода для нового названия.
А что ещё надо?
https://t.me/FarManager — Telegram чат
User avatar
phidel
Posts: 104
Joined: Wed 29 Jun, 2011 17:21
Has thanked: 30 times
Been thanked: 6 times
Contact:

Работа с консольными алиасами

Post by phidel »

мне нужен аналог команды ren (привычка за многие годы к командной строке, да и быстрее на ноутбуке гораздо, чем включать функциональные клавиши, искать где там F6 - у меня они малюсенькие и плохоразличимые, да еще руку выворачивать чтобы одновременно нажать Shift)
ren старое_название новое_название
независимо от того, где сейчас стоит курсор
User avatar
buniak_a_h
Posts: 4559
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 242 times
Been thanked: 674 times
Contact:

Работа с консольными алиасами

Post by buniak_a_h »

phidel wrote: Mon 31 Mar, 2025 12:16 мне нужен аналог команды ren
Можно сделать вызов lua-скрипта из комстроки. Например, ren:<исходный файл> <новое имя> (от настоящей команды отличается двоеточием вместо пробела). Тут же можно проверить, сколько аргументов (если один - то считать, что это - новое имя. А исходное - текущий файл на активной панели).
За подробностями посмотрите раздел Добавление префиксов командной строки в документе %FarHome%\Encyclopedia\macroapi_manual.ru.chm
User avatar
phidel
Posts: 104
Joined: Wed 29 Jun, 2011 17:21
Has thanked: 30 times
Been thanked: 6 times
Contact:

Работа с консольными алиасами

Post by phidel »

buniak_a_h, Так и сделаю, спасибо.

Как получить описание файла я знаю - Panel.Item(APANEL, 0, 11), а как его установить? пока знаю способ только черех позиционирование и Keys "CtrlZ"
Last edited by phidel on Mon 31 Mar, 2025 15:48, edited 1 time in total.
User avatar
John Doe
Бюрократ
Posts: 14580
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

Работа с консольными алиасами

Post by John Doe »

buniak_a_h wrote: Mon 31 Mar, 2025 14:40 Можно сделать вызов lua-скрипта из комстроки. Например, ren:<исходный файл> <новое имя>
Вы осознаёте что направляете человека в кроличью нору?
phidel wrote: Mon 31 Mar, 2025 15:47 а как его установить?
Нет другого способа.
Надо программно установить курсор, вызвать диалог по ShiftF6, ввести имя и Enter.
Это элементарно, если вас устроит, что аргументы придётся заключать в кавычки всегда, и разделять между собой запятой.
https://t.me/FarManager — Telegram чат
User avatar
John Doe
Бюрократ
Posts: 14580
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

Работа с консольными алиасами

Post by John Doe »

Впрочем, есть простой путь: https://jpsoft.com/downloads/v14/tcclex64.exe (или более новый TCC-RT: https://jpsoft.com/all-downloads/all-downloads.html).

Code: Select all

ren=tcc /c ren
https://t.me/FarManager — Telegram чат
User avatar
buniak_a_h
Posts: 4559
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 242 times
Been thanked: 674 times
Contact:

Работа с консольными алиасами

Post by buniak_a_h »

phidel wrote: Mon 31 Mar, 2025 15:47 Как получить описание файла я знаю - Panel.Item(APANEL, 0, 11)
Спасибо! А я не знал…
panel.GetPanelItem(…).Description, увы, не всегда показывает :-(
User avatar
buniak_a_h
Posts: 4559
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 242 times
Been thanked: 674 times
Contact:

Работа с консольными алиасами

Post by buniak_a_h »

John Doe wrote: Mon 31 Mar, 2025 16:44 Вы осознаёте что направляете человека в кроличью нору?
Мне бы попроще… Не догоняю.
Post Reply

Return to “Полезные макросы и скрипты”