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

Здесь выкладываются готовые к использованию макросы и скрипты.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

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

Post by John Doe »

Ранняя тема об алиасах не содержит общей информации, поэтому размещу здесь это предисловие:

Основная функция данного скрипта — автозагрузка файла алиасов при старте фара, а также после каждой правки .

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

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

Требуется FAR 3 build >=4324
Attachments
Alias.2.7z
(3.98 KiB) Downloaded 477 times
Last edited by John Doe on Mon 07 Aug, 2017 11:03, edited 1 time in total.
GorDAn
Posts: 49
Joined: Sun 26 Jun, 2011 09:47
Has thanked: 6 times

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

Post by GorDAn »

Latest post of the previous page:

Хотел сообщение вывести не в окно, а в консоль. Чтобы после загрузки было примерно так...

Code: Select all

Far Manager, version 3.0 (build 3901) x64
Copyright © 1996-2000 Eugene Roshal, Copyright © 2000-2014 Far Group
Console aliases loading... Ok
Это можно скриптом сделать?
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

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

Post by John Doe »

Теоретически да, но не так просто. А что это даст вам?
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

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

Post by Shmuel »

GorDAn wrote:Хотел сообщение вывести не в окно, а в консоль. Чтобы после загрузки было примерно так...

Code: Select all

Far Manager, version 3.0 (build 3901) x64
Copyright © 1996-2000 Eugene Roshal, Copyright © 2000-2014 Far Group
Console aliases loading... Ok
Это можно скриптом сделать?
http://forum.farmanager.com/viewtopic.p ... 97#p111497
GorDAn
Posts: 49
Joined: Sun 26 Jun, 2011 09:47
Has thanked: 6 times

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

Post by GorDAn »

John Doe wrote:Теоретически да, но не так просто. А что это даст вам?
Да, согласен это некритичный функционал. Я бы даже отнёс это к рюшечкам :) Просто я пытаюсь освоить Lua вообще и Luafar в частности. Да и лог жизнедеятельности программ/скриптов в консоль мне привычней.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

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

Post by John Doe »

А как-же мелькание, не помешает?
GorDAn
Posts: 49
Joined: Sun 26 Jun, 2011 09:47
Has thanked: 6 times

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

Post by GorDAn »

Я пробовал так. Скрипт выводит в свой поток. А я хотел в поток, куда Far выводит сообщение «Far Manager, version 3.0 (build 3904) x64 ...».
Плюс к этому код:

Code: Select all

io.write("Console aliases loading...\n");
os.execute(('doskey rr=doskey/macrofile="%s" 1<&2 >nul'):format(_aliasfile))
os.execute(('doskey/macrofile="%s" 1<&2 >nul'):format(_aliasfile))
io.write(" Ok\n")
выводит «Console aliases loading...» и всё.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

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

Post by John Doe »

Уберите 1<&2 >nul.
И что значит "в свой поток"?
GorDAn
Posts: 49
Joined: Sun 26 Jun, 2011 09:47
Has thanked: 6 times

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

Post by GorDAn »

John Doe wrote:А как-же мелькание, не помешает?
Мелькание происходит из за плагина "ConEmu Background"
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

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

Post by John Doe »

Я о мелькании панелей.
Хотя если этот подход устраняет мелькание ConEmu Background, тогда понятно
GorDAn
Posts: 49
Joined: Sun 26 Jun, 2011 09:47
Has thanked: 6 times

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

Post by GorDAn »

John Doe wrote:...
И что значит "в свой поток"?
Возможно, я не правильно выражаюсь. Когда Far запустился, если нажать Ctrl+O, на чёрном фоне сообщение о версии Far и т.д. Вот я и спрашиваю можно из данного скрипта вывести туда своё сообщение? У меня через io не получилось. Вот я и предположил, что для каждого скрипта открывается свой поток ввода вывода.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

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

Post by John Doe »

Вы часом не упустили команду panel.SetUserScreen()?
GorDAn
Posts: 49
Joined: Sun 26 Jun, 2011 09:47
Has thanked: 6 times

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

Post by GorDAn »

John Doe wrote:Я о мелькании панелей.
Хотя если этот подход устраняет мелькание ConEmu Background, тогда понятно
Нет, я к тому, что мелькание происходит из-за работы плагина. Мелькание не устранить кроме, как отключить его.
GorDAn
Posts: 49
Joined: Sun 26 Jun, 2011 09:47
Has thanked: 6 times

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

Post by GorDAn »

John Doe wrote:Вы часом не упустили команду panel.SetUserScreen()?
Да. Сейчас попробую...
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

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

Post by John Doe »

John Doe wrote:
GorDAn wrote:выводит «Console aliases loading...» и всё.
Уберите 1<&2 >nul.
Тут ещё надо уточнить а что собственно вы ожидали увидеть? 1<&2 >nul подавляют только вывод ошибок.
Если же вы хотите увидеть командную строку выполняемых команд, то добавьте io.output (желательно перевести строки в Ansi)
GorDAn
Posts: 49
Joined: Sun 26 Jun, 2011 09:47
Has thanked: 6 times

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

Post by GorDAn »

Спасибо большое! Это моя невнимательность. Спутал с far.SaveScreen() :( Теперь работает.
GorDAn
Posts: 49
Joined: Sun 26 Jun, 2011 09:47
Has thanked: 6 times

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

Post by GorDAn »

К 1<&2 >nul у меня претензий нет :) Ещё раз спасибо за помощь и скрипт.
Post Reply

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