EnvEdit — редактор переменных среды

Здесь выкладываются готовые к использованию макросы и скрипты.
User avatar
Smitis
Posts: 1732
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 25 times
Been thanked: 58 times

EnvEdit — редактор переменных среды

Post by Smitis »



Скрипт показывает три списка переменных среды: для процесса, для пользователя из HKCU\Environment, для системы из HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment. Можно настроить, с чего начинать показ.
Переменные показываются as is, т.е. то, что вернула система, никакого специального раскрытия переменных среды не делается.
Поддерживаются только переменные REG_SZ и REG_EXPAND_SZ (остальные типы всё равно не используются самой системой).

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

Персональные настройки могут храниться в отдельном файле, на случай обновления скрипта. Файл настроек должен иметь то же имя, что и скрипт с расширеним cfg и размещаться в той же папке, что и скрипт. Пример прилагается. Описание в примере.

Клавиши:
AltShiftE - Вызов макроса по умолчанию. Эта же комбинация по умолчанию используется для переключения списков переменных, аналогично Tab.
Tab и ShiftTab - Переключение списков переменных.
Enter - Редактирование переменной.
F4 или ShiftF4 - Редактирование переменной во встроенном редакторе.
Ins или Num0 - Добавление новой переменной.
Del или NumDel - Удаление переменной.
F12 или ShiftF12 - Восстановление последней удалённой переменной. Для каждого из трёх списков запоминается своя последняя удалённая переменная. После перезагрузки макросов эти сохранённые значения теряются.
F4 или ShiftF4 в диалоге редактирования вызывают встроенный редактор ФАРа. Предполагается, что делается это для переменных типа PATH, где несколько частей разделены точкой с запятой. Поэтому, при вызове редактора точки с запятой заменяются на переводы строк, а по окончании редактирования всё собирается обратно, лишние переводы строк и точки с запятой удаляются.

Уделение переменных из реестра и правильная запись их в реестр работает только с luafar/luamacro build >= 552 (или FAR 3.0 build 4491)
Для работы скрипта требуется модуль DialogClass ver>=1.11

EnvEdit.1.11.7z
EnvEdit 1.11
(6.36 KiB) Downloaded 117 times
Last edited by Smitis on Tue 01 Jul, 2025 09:11, edited 4 times in total.
User avatar
buniak_a_h
Posts: 4565
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 242 times
Been thanked: 674 times
Contact:

EnvEdit — редактор переменных среды

Post by buniak_a_h »

Latest post of the previous page:

Smitis, рекомендую мелкую доделку.
  1. Перед циклом строки 352 (while true do -- цикл - показываем меню / обрабатываем клавиши) вставить строки local prop = и перенести туда первый параметр (таблицу) вызова far.Menu. А сам первый параметр заменить на prop.
  2. После вызова far.Menu добавить строку:

    Code: Select all

    if res then prop.SelectIndex = pos[mode] end
    Это чтоб после редактирования (например) не терялась позиция меню
User avatar
buniak_a_h
Posts: 4565
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 242 times
Been thanked: 674 times
Contact:

EnvEdit — редактор переменных среды

Post by buniak_a_h »

Zeroes wrote: Thu 21 Jul, 2022 05:56 тут подобное не сделать?
Легко. Ну, может раскраска и древовидность посложнее, но сам функционал Вы доделаете за полчаса, я думаю
User avatar
HaRT
Moderator
Posts: 11458
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 270 times
Been thanked: 417 times

EnvEdit — редактор переменных среды

Post by HaRT »

buniak_a_h wrote: Thu 21 Jul, 2022 08:31 сам функционал Вы доделаете за полчаса
Предвижу очень длительные зависания при проверке недоступных сетевых путей.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
buniak_a_h
Posts: 4565
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 242 times
Been thanked: 674 times
Contact:

EnvEdit — редактор переменных среды

Post by buniak_a_h »

HaRT wrote: Thu 21 Jul, 2022 12:16 Предвижу очень длительные зависания при проверке недоступных сетевых путей.
  1. А при поиске файлов (для запуска, например) в тех случаях, когда винда использует path, те же тормоза будут?
  2. Ну, я бы делал не автоматическую проверку, а сервис анализа/изменения именно PATH (разборка по ;, представление в виде листбокса с возможностью изменения/проверки путей) повесить на BreakKey какой-нить. А там уж - всё на выбор юзера.
User avatar
HaRT
Moderator
Posts: 11458
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 270 times
Been thanked: 417 times

EnvEdit — редактор переменных среды

Post by HaRT »

buniak_a_h wrote: Thu 21 Jul, 2022 12:40 в тех случаях, когда винда использует path, те же тормоза будут?
Не знаю, не проверял.
buniak_a_h wrote: Thu 21 Jul, 2022 12:40 представление в виде листбокса с возможностью изменения/проверки путей
Без проверки в Винде и так есть, а если проверять по одному пути вручную, то непонятно, в чём смысл.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
buniak_a_h
Posts: 4565
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 242 times
Been thanked: 674 times
Contact:

EnvEdit — редактор переменных среды

Post by buniak_a_h »

HaRT wrote: Thu 21 Jul, 2022 12:44 Без проверки в Винде и так есть
Вы имеете в виду интерфейс задания переменных path? Ну, тогда и возможность изменения вообще env-переменных в винде есть.
Или я Вас неправильно понял?
User avatar
HaRT
Moderator
Posts: 11458
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 270 times
Been thanked: 417 times

EnvEdit — редактор переменных среды

Post by HaRT »

buniak_a_h wrote: Thu 21 Jul, 2022 13:02 Вы имеете в виду интерфейс задания переменных path?
Да, притом именно для переменной Path он заточен на работу со значением как со списком путей в файловой системе.
buniak_a_h wrote: Thu 21 Jul, 2022 13:02 тогда и возможность изменения вообще env-переменных в винде есть
Есть, но не для заданного процесса.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
Smitis
Posts: 1732
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 25 times
Been thanked: 58 times

EnvEdit — редактор переменных среды

Post by Smitis »

Что-то идея проверки путей меня не вдохновила. Разве только действительно отдельной командой.

Сколько лет firefox-ом не пользуюсь, ни разу переменную среды MOZ_PLUGIN_PATH не видел. Да ещё и пустую. По-моему, штатным образом такую не создать. Впрочем, надо посмотреть.

buniak_a_h
Да, доработку сделаю.
Разум когда-нибудь победит.
User avatar
John Doe
Бюрократ
Posts: 14582
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

EnvEdit — редактор переменных среды

Post by John Doe »

Диалог поломался
https://t.me/FarManager — Telegram чат
User avatar
Smitis
Posts: 1732
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 25 times
Been thanked: 58 times

EnvEdit — редактор переменных среды

Post by Smitis »

John Doe wrote: Tue 24 Jun, 2025 22:40 Диалог поломался
Добавил текущую рабочую версию (на 6500 работает).
Сейчас ещё DialogClass проверю
Разум когда-нибудь победит.
User avatar
John Doe
Бюрократ
Posts: 14582
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

EnvEdit — редактор переменных среды

Post by John Doe »

Спасибо!
Оказалось что DialogClass у меня устаревший был.

P.S.
В шапке codebox поломан, неплохо бы заменить на code.
User avatar
Smitis
Posts: 1732
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 25 times
Been thanked: 58 times

EnvEdit — редактор переменных среды

Post by Smitis »

John Doe wrote: Fri 27 Jun, 2025 07:58 В шапке codebox поломан, неплохо бы заменить на code.
Лишние строки ваставляет? Заменил.
Разум когда-нибудь победит.
User avatar
HaRT
Moderator
Posts: 11458
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 270 times
Been thanked: 417 times

EnvEdit — редактор переменных среды

Post by HaRT »

Smitis wrote: Sat 19 Dec, 2015 20:26 win.DeleteRegValue(RootKey,PathKey,prev.Name)
LuaCheck говорит, что в строке 389 используется не определённая прежде переменная prev, и взглянув в код, я с ним согласен.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
HaRT
Moderator
Posts: 11458
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 270 times
Been thanked: 417 times

EnvEdit — редактор переменных среды

Post by HaRT »

И пара пожеланий:
1. Добавить возможность распахнуть меню на всё окно, подобно тому, как это сделано при просмотре справки Фара по F5. В идеале, конечно, хотелось бы, чтобы настройку ширины меню и колонок в нём можно было задавать в процентах (от ширины окна Фара и ширины меню соответственно).
2. Запоминать (хотя бы между вызовами в одном сеансе Фара), какой набор переменных активен, и показывать именно его при следующем вызове. Про настройку знаю, но неудобно её менять под каждую новую задачу; поэтому пусть бы настройка управляла тем, какой набор переменных откроется при первом вызове в новом экземпляре Фара.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Post Reply

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