Сохранение/восстановление именованных контекстов

Здесь обсуждается всё, что касается макросов.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Сохранение/восстановление именованных контекстов

Post by buniak_a_h »

На этом форуме имеется много скриптов, позволяющих запомнить и восстановить папки и файлы. Возможно, есть скрипты, позволяющие запомнить режимы просмотра и сортировки с привязкой к папкам. Возможно даже имеются скрипты, сохраняющие и восстанавливающие фильтры (опять же с привязкой к папкам). То, что я предлагаю - попытка сохранения именованного контекста, включающего папки, сортировку, режим просмотра, фильтр и список открытых редакторов-вьюеров. Полнота восстанавливаемых данных настраивается. Также предусмотрен сервис удаления ненужных контекстов.

Сохранение контекста вызывается по CtrlS в панелях и в диалоге выхода из ФАРа (там появилась подсказка).
Восстановление контекста вызывается из пункта МЕНЮ плагинов. Надпись появится только в случае наличия сохранённых контекстов. Хотя это, наверно, будет переделываться.

Версия 1.4.4 от 10.05.2022
  1. Исправлена неточность запуска ФАРа в нескольких панелях ConEMU. Теперь для этого используется команда плагина, таким образом ФАР запускается с теми ключами, что указаны в настройках ConEMU.
  2. Исправлена неточность восстановления фильтров при включённой настройке плагина Временная панель
    [x] Menu from file list
    Эта настройка не учитывалась, что приводило к неправильному восстановлению фильтров по расширению и появлению "мусора" в командной строке.
SaveContext.1_4_4.7z
(47.73 KiB) Downloaded 189 times
Last edited by buniak_a_h on Tue 10 May, 2022 02:29, edited 36 times in total.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Сохранение/восстановление именованных контекстов

Post by buniak_a_h »

Latest post of the previous page:

Проверил на диске от виртуальной машины, открытый плагином Observer - тоже местоположение восстанавливается.
PortaDev - не получилось восстановить (нет такого хост-файла)
User avatar
Ann
Posts: 478
Joined: Tue 26 Jun, 2007 11:05
Has thanked: 141 times
Been thanked: 45 times

Сохранение/восстановление именованных контекстов

Post by Ann »

buniak_a_h,

Кстати, касательно моей нечаянной ошибки с ArcLite`ом и ведении протокола ошибок при восстановлении контекста. При наличии битого архива плагинная панель, на которую должно было выводиться содержание архива (если бы он был цельным, а не битым) молча не восстанавливается, без выдачи красного предупреждения.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Сохранение/восстановление именованных контекстов

Post by buniak_a_h »

Версия 1.3.2
  1. Реализовано сохранение / восстановление отметок файлов на восстанавливаемых панелях.
  2. Добавлено формирование сообщения об ошибке при неудаче перехода на папку в плагиновой панели. При этом код и текст ошибки формируются системой и от меня не зависят. Например, при переходе внутрь «битого» архива формируется сообщение об отсутствии файла.
User avatar
Ann
Posts: 478
Joined: Tue 26 Jun, 2007 11:05
Has thanked: 141 times
Been thanked: 45 times

Сохранение/восстановление именованных контекстов

Post by Ann »

buniak_a_h wrote: Mon 15 Mar, 2021 10:42
Версия 1.3.2

1. Реализовано сохранение / восстановление отметок файлов на восстанавливаемых панелях
Подтверждается. В т.ч. в панелях ArcLite`а и Observer`а.
2. Добавлено формирование сообщения об ошибке при неудаче перехода на папку в плагиновой панели
Подтверждается. И с ArcLite`ом, и с Observer`ом.

User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Сохранение/восстановление именованных контекстов

Post by buniak_a_h »

Ann wrote: Mon 15 Mar, 2021 12:09 Он и восстанавливается на правую панель, но не как активную, а как пассивную.
Я в курсе. Потратил пару дней, запутался окончательно и решил, что одно нажатие Tab юзера не затруднит.
User avatar
Ann
Posts: 478
Joined: Tue 26 Jun, 2007 11:05
Has thanked: 141 times
Been thanked: 45 times

Сохранение/восстановление именованных контекстов

Post by Ann »

buniak_a_h wrote: Mon 15 Mar, 2021 12:17решил, что одно нажатие Tab юзера не затруднит
Однозначно не затруднит. Спасибо за пояснение. Предупреждён — значит вооружён. А если чуть чего, то есть ещё и возможность корректировки PanelTabs`ом или алиасом.
User avatar
Ann
Posts: 478
Joined: Tue 26 Jun, 2007 11:05
Has thanked: 141 times
Been thanked: 45 times

Сохранение/восстановление именованных контекстов

Post by Ann »

buniak_a_h wrote: Mon 15 Mar, 2021 12:17 Потратил пару дней, запутался окончательно
А не является ли излишним обилие опций-запросов при сохранении контекста:
( ) Как в исходной ( ) На левую ( ) На правую (•) Спрашивать
На мой взгляд, было бы вполне достаточно и двух крайних вариантов.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Сохранение/восстановление именованных контекстов

Post by buniak_a_h »

Ann wrote: Mon 15 Mar, 2021 15:32 не является ли излишним обилие опций-запросов при сохранении контекста:
Я крайний правый вариант добавил позже, 2-й и 3-й убирать уже не стал. Да это и не помогло бы. Просто есть APanel и PPanel, но нет LPanel и RPanel. Т.е. имеется какой-то дуализм: Запоминается активная, а восстанавливается на левую. А которая левая - APanel или PPanel - определяется в момент восстановления в зависимости от того, какая панель - левая или правая - активна на начало восстановления. Ну я и запутался.
User avatar
Ann
Posts: 478
Joined: Tue 26 Jun, 2007 11:05
Has thanked: 141 times
Been thanked: 45 times

Сохранение/восстановление именованных контекстов

Post by Ann »

buniak_a_h wrote: Mon 15 Mar, 2021 16:01
Ann wrote: Mon 15 Mar, 2021 15:32 не является ли излишним обилие опций-запросов при сохранении контекста:
имеется какой-то дуализм: запоминается активная, а восстанавливается на левую
Да уж! И есть Panel.Left, но нет Panel.Right. Вот и приходится изощряться. А в такой ситуации то и запутаться вовсе не сложно.
Я крайний правый вариант добавил позже, 2-й и 3-й убирать уже не стал
Однако, если я не ошибаюсь, то четыре опции вместо двух это всё же выбор возможных вариантов примерно в четыре раза сложнее: 4х4/2х2=4.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Сохранение/восстановление именованных контекстов

Post by buniak_a_h »

Ann wrote: Mon 15 Mar, 2021 16:45 выбор возможных вариантов примерно в четыре раза сложнее
На самом деле сначала смотрится, не последний ли вариант; если не отказались, то в зависимости от ответа выставляется 2-й или 3-й, а потом - всё по накатанной. Так что упрощать нечего.
User avatar
Ann
Posts: 478
Joined: Tue 26 Jun, 2007 11:05
Has thanked: 141 times
Been thanked: 45 times

Сохранение/восстановление именованных контекстов

Post by Ann »

buniak_a_h,
Ann wrote: Sun 14 Mar, 2021 13:14 Не получилось у меня пока что ни как только с пользовательской переменной DN, устанавливаемой при загрузке Фара через командный файл (в одном случае это DN=H:\Do wn\2021_03_14\, а в другом DN=C:\Do wn\2021_03_14\. Экспорт и импорт контекстов с того/в тот экземпляр Фара, который установлен в папке H:\Far\, и с того/в тот, который установлен в C:\FarTst\, и последующая их загрузка через CtrlC-R приводили лишь к тому результату, что восстанавливался контекст на исходном диске без учёта переменной DN. Т.е. на диске H: восстанавливался контекст с диска C: и наоборот
Мне кажется, что я таки догадался что не так с переменной DN. Похоже на то, что в данном случае сказывается ошибка пользователя. И сабжевый скрипт здесь совершенно ни при чём.

А дело в том, что эта переменная изначально почему-то задавалась с замыкающим слешем. И после того, как я убрал этот слеш из запускающих батников обоих Фаров, всё встало на свои места. И тем самым лишний раз подтвердилась действенность пункта 1 версии 1.3.1:
buniak_a_h wrote: Sun 14 Mar, 2021 04:10 Версия 1.3.1

1. Реализована привязка пути к переменным среды. Например, если в исходной конфигурации переменная FARHOME установлена в C:\Program Files\Far Manager и путь на панели указывает к папке C:\Program Files\Far Manager\Plugins, а на приёмной машине FARHOME = D:\Far, то соответствующая панель
откроется в папке D:\Far\Plugins. См. форум
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Сохранение/восстановление именованных контекстов

Post by buniak_a_h »

Ann wrote: Mon 15 Mar, 2021 17:23 дело в том, что эта переменная изначально почему-то задавалась с замыкающим слешем. И после того, как я убрал этот слеш из запускающих батников обоих Фаров, всё встало на свои места
Я знал, что кто-нить наступит на эти грабли. Но не хотелось огород городить. Возможно, зря. Например, в исходной конфигурации есть переменная QQQ=C:\Qwerty, есть путь C:\Qwerty123\Sub. Вот надо ли заменять в этом пути начало на %QQQ%? Я заменяю только часть пути, после которой идёт слэш (т.е. если Env-переменная указывает на папку). А может - зря? Лишняя проблема + лишняя проверка…
И ещё. Сравнение регистрозависимое. Это означает не только что путь сравнивается со значением переменной, но и что если в исходной конфигурации была переменная QQQ, а в результирующей - Qqq, то подстановка не произойдёт.
User avatar
Ann
Posts: 478
Joined: Tue 26 Jun, 2007 11:05
Has thanked: 141 times
Been thanked: 45 times

Сохранение/восстановление именованных контекстов

Post by Ann »

buniak_a_h wrote: Mon 15 Mar, 2021 17:43 Вопрос к знатокам Windows: может ли быть определено несколько Env-переменных, имена которых отличаются только регистром?
Я вовсе не "знаток Windows", но вся моя, пусть и не обширная, практика говорит о том, что Env-переменные регистронезависимы.

И в Фаре это легко увидеть. Безразлично как я буду применять в комстроке ту же DN: cd %DN%, cd %Dn%, cd %dN% или cd %dn%. В любом случае получу один и тот же результат.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Сохранение/восстановление именованных контекстов

Post by buniak_a_h »

Ann wrote: Mon 15 Mar, 2021 18:19 Env-переменные регистронезависимы.
1. Я уж проверил (плагином Environment Manager, хотя это и некорректно). Надо переделывать…
2. Слово регистронезависимы тут двузначно: имя - регистронезависимо, а значение - регистрозависимо. Для Path тоже надо переделывать …
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Сохранение/восстановление именованных контекстов

Post by buniak_a_h »

Upd: как выяснилось, значения сравниваются с path без учёта регистра. Значит, мелочь: только имя Env-переменной .
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Сохранение/восстановление именованных контекстов

Post by HaRT »

buniak_a_h wrote: Mon 15 Mar, 2021 20:23 значения сравниваются с path без учёта регистра
Прошу прощения, если я влезаю не по делу, но тут, вероятно, всё же возможны нестыковки, если для директории включена регистрозависимость.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Post Reply

Return to “Обсуждение макросов”