Skip to content

FarManagerLegacy/Alias

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

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

О консольных алиасах

Консольные алиасы, также известные как “макросы DOSKEY, это общеизвестный, но в целом недооценённый инструмент работы.

Алиасы позволяют задать удобные сокращения для различных команд.

Почти того же можно добиться, создав кучу батников, и сложив их где-то в %PATH%.

Однако (и это определяющее преимущество) в отличии от батников, через алиасы DOSKEY доступны и команды фара (chdir, set), а посредством префиксов доступны и команды плагинов (например FAR Commands, Temporary Panel).
Через префикс lua: можно использовать даже макросы!

Примеры алиасов: alias.sample.doskey.

Алиасы быстро создаются из командной строки: doskey a=b, удалить: doskey a=, просмотреть: doskey /m.

Когда алиасов становится много, их можно разместить в файле, и загружать командой doskey /macrofile="путь_к_файлу_алиасов".

Раньше я использовал простой макрос для загрузки макросов при старте: https://forum.farmanager.com/viewtopic.php?p=117329#p117329. Однако захотелось автоматически перезагружать файл после его редактирования, так что его пришлось усовершенствовать).

Вот что получилось:

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

  • По умолчанию в качестве файла алиасов используется alias.doskey, который должен быть расположен рядом со скриптом.

    Об имени файла

    Можно было бы назвать файл иначе, но отдельное расширение выбрано специально. Это позволяет использовать ассоциацию на маску “*.doskey”: DOSKEY/MACROFILE="!\!.!": так можно иметь разные файлы с алиасами, и загружать их по мере надобности.

  • Кодировка файла: OEM или UTF-8 (c BOM).

  • Формат файла: типичный ini-файл, разбитый на секции вида [far.exe], [cmd.exe].

    Подробности

    Строго говоря, секции необязательны, но удобны:

    • Позволяют задавать алиасы раздельно для разных приложений. Например те алисы, которые имеют смысл только в фаре можно разместить в секции [far.exe], а все прочие - в [cmd.exe] (фар понимает и те и другие). Также алиасы можно использовать в некоторых других приложениях, например [nslookup.exe].
    • При большом количестве алиасов могут быть проблемы, разделение на 2 секции помогает.
    • Наличие секций позволяет Colorer’у распознавать и раскрашивать файл как INI (этого можно было достичь дав файлу имя с соответствующим расширением)

    Алиасы секции far.exe имеют приоритет.

  • В качестве комментариев можно использовать строки, начинающиеся на ;=.

Дополнительные функции доступны через префикс командной строки alias:.

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

Рекомендуется в первую очередь назначить алиас a=alias:, и в дальнейшем использовать именно его вместо полного префикса. (см. этот и другие примеры в прилагаемом alias.sample.doskey).

Примечание:

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

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

About

Macro for console aliases handling in Far

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages