Запуск из командной строки по префиксу env:.
Рекомендуется назначить ассоциацию на *.env.
При загрузке макросов, может автоматически загружать файл autoload.env из
пользовательской директории (см.)
Макрос, позволяющий выбрать файл для импорта из списка.
Файлы читаются из пользовательской директории.
Клавиатурную комбинацию для вызова нужно определить через опцию macrokey
(по умолчанию не задана).
Пользовательская директория
По умолчанию:
Windows: %FARPROFILE%\.env
Linux (far2m): far.InMyConfig(".env")
Если эта директория отсутствует, то ищется директория .env рядом со скриптом.
Значение может быть переопределено через опцию envdir
(поддерживается cfgscript/ScriptsBrowser).
Командная строка
env:file.env
Импорт окружения из заданного файла.
env:directory
Чтение списка *.env-файлов из заданной директории,
и выбор файла для импорта из списка.
env:/envdir
Чтение списка *.env-файлов из пользовательской директории,
и выбор файла для импорта из списка.
env:<command
Запуск команды и импорт изменений из её окружения.
env:
При запуске без параметров выводится эта справка.
Примечания:
При запуске через префикс имя файла/директории ожидаются без кавычек.
Внимание: в этом случае использование кавычек обязательно.
При необходимости указания символа <, он также помещается внутрь кавычек: lua:@impenv.lua "<command"
Проверил базовую ф-ть env:<command, все работает (Windows only). Спасибо огромное. clear/reset наверное не особо важно, в крайнем случае всегда можно перезапустить фар.
Last edited by Yegor on Thu 22 Aug, 2024 16:59, edited 1 time in total.
Мы не можем ждать милостей от Фара, взять их у него — наша задача! (C) Мичурин
В unix, когда Вы запускаете shell script, он будет запускаться в отдельном процессе. Все изменения переменных окружения будут происходить в этом новом процессе, а не в исходном процессе в котором был вызван скрипт. когда шелл скрипт завершится завершится процесс который его исполнял и все изменения переменных окружения пропадут. чтобы команды из файла выполнялись без запуска нового шела нужно использовать команды source или . в зависимости от используемого shell. т.е аналогичная команда в unix, будет выглядеть примерно так sh -c ". /path/script.sh ; env"
Сходу не решу насколько эта фича подходит данному скрипту.
Но если хотите, то в функции importEnv можно перед вызовом win.SetEnv(var,val) добавить строку