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

Здесь обсуждается всё, что касается макросов.
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 188 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:

Ann wrote: Thu 18 Mar, 2021 14:08 buniak_a_h,

У меня после импорта Вашей конфигурации раскрашивает как миленький. Я не представляю, что может гадить …
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: Thu 18 Mar, 2021 15:39 Я не представляю, что может гадить …
А я и тем более недоумеваю. Уж и на другую машину носил (там чуток иная версия Win10 стоит), и версии Фара менял, и непосредственно версию 1.2.6 скрипта пробовал, а всё ни как. А ведь у меня поначалу то фишка подкраски в диалоге выхода нормально работала ...
Теперь вот подозреваю, что срабатывает некая настройка из многочисленных и многослойных настроек десятки. Но вникать в сей управляемый хаос совсем не хочется, уж пусть пока что так и остаётся.

И тогда уж попутно по поводу этого диалога.
vot.png
vot.png (10.39 KiB) Viewed 2809 times
Настройка опции [ ] Сохранить контекст находится в непосредственной близости с кнопкой { Да }, схватывается сознанием как единое целое и всякий раз интуитивно порождает когнитивный диссонанс. А нельзя ли кнопку { Да } переименовать в { Выйти }? Да и установку опции не лишне было бы уточнить: [ ] Сохранить контекст перед выходом. Хотя последнее без первого всё равно работать не будет.
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: Thu 18 Mar, 2021 18:43 по поводу этого диалога.
Интересные у Вас цвета … Почему-то у меня по /import с Вашим файлом такие цвета не установились. :-) Жаль, не привели в пример такое же окошко с изменёнными файлами в редакторах.
Кстати! Тут выяснилось, что при наличии не сохранённых, но изменённых файлов ФАР вообще не закрывается Буду искать. Недавно ещё закрывался :-(
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: Thu 18 Mar, 2021 19:00 Жаль, не привели в пример такое же окошко с изменёнными файлами в редакторах
Да!!! Похоже на то, что вовсе и не в настройках винды дело, а это я в очередной раз затупил.

Вот окошко с изменённым файлом и изменённой мною "органолептическим" методом формой самого окошка:
naGlaz.png
Т.е. подцветка на самом то деле вполне работает. А я почему-то ожидал, что подцвечиваться будут числа открытых просмотрщиков и редакторов. Прошу прощения за то, что нечаянно ввёл себя и вводил Вас в заблуждение.
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, ура!
Теперь по поводу текста на кнопке. Его (как и все остальные литералы) я беру из стандартного диалога закрытия ФАРа. Поэтому эти тексты зависят от языковых установок. Без всякой локализации. Так что дилемма: или пожертвовать локализацией (потом можно будет сделать моим модулем GetMsg), либо оставить тексты как есть.
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: Thu 18 Mar, 2021 20:07 пожертвовать локализацией (потом можно будет сделать моим модулем GetMsg), либо оставить тексты как есть
Так ведь пока локализации нет, то и жертвы тоже ни какой нет.

Полагаю, что надёжнее двигаться по принципу "от целого к целому". Т.е. предпочтительнее сначала сделать наиболее подходящую на данный момент форму, а уже затем далее её последовательно оттачивать.
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: Thu 18 Mar, 2021 20:21 пока локализации нет
В конкретно этом диалоге относительно тех текстов, что есть в стандартном диалоге закрытия (заголовок, текст вопроса, тексты кнопок) - есть. Т.е. они зависят от выставленного языка. Так что "никакой" - это преувеличение. Я так старался прочитать эти тексты!
На самом деле Вы, наверно, правы: можно свой текст написать.
User avatar
Ann
Posts: 478
Joined: Tue 26 Jun, 2007 11:05
Has thanked: 141 times
Been thanked: 45 times

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

Post by Ann »

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,

Опять по поводу диалога "Выход". Нередко его третья и четвёртая содержательные строчки сообщают нам:

Code: Select all

       Открыто просмотрщиков: 0      
        Открыто редакторов: 0       
Полагаю, что целесообразно было бы и следующую строчку выводить тоже:

Code: Select all

             Изменено: 0        
И не только когда редакторов открыто 0, а и тогда, когда открытые редакторы есть, но не сохранённых 0.
Такая информация снимет неопределённость и избавит рефлектирующего пользователя от подспудного беспокойства, что в диалоге чего-то не хватает.
Last edited by Ann on Thu 18 Mar, 2021 21:49, edited 1 time in total.
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: Thu 18 Mar, 2021 07:51 как-то без Ваших замечаний скучно стало
Last edited by Ann on Fri 19 Mar, 2021 19:45, edited 1 time 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 »

Ann wrote: Fri 19 Mar, 2021 19:38 когда я замешкался и не успел нажать вторую клавишу аккорда, то приходится всё начинать сначала
Именно поэтому у себя я убрал таймаут. Совсем.
Ann wrote: Fri 19 Mar, 2021 19:38 при нажатии и удержании шотката CtrlShiftC в появляющейся табличке отражаются только две позиции из трёх:
Вообще-то отображаются все три. Просто я забыл добавить в description имя шотката ^C-C -.
Ann wrote: Fri 19 Mar, 2021 19:38 устраняются простым использованием базового свойства меню выбора макроса предлагать пользователю сделать выбор из нескольких позиций.
Предлагаете повесить все функции на один ключ? И пусть юзер выбирает из МЕНЮ?
Ann wrote: Fri 19 Mar, 2021 19:38 Файлы … , следует поместить в %FarProfile%\Macros\scripts\.

А находящиеся в папке modules, … в %FarProfile%\Macros\modules\.
Категорически не согласен! Не буду устраивать "свалку" по системе "всё в одном". Мне это неудобно. Разбиваю модули и макросы по авторам.
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: Fri 19 Mar, 2021 21:37
Ann wrote: Fri 19 Mar, 2021 19:38 Файлы … , следует поместить в %FarProfile%\Macros\scripts\.

А находящиеся в папке modules, … в %FarProfile%\Macros\modules\.
Категорически не согласен! Не буду устраивать "свалку" по системе "всё в одном". Мне это неудобно. Разбиваю модули и макросы по авторам
Тут или я недостаточно точно выразился; или Вы не поняли, что имеется ввиду; или ещё не заглядывали в приаттаченный архив. Потому что никакой "свалки", разумеется, не предлагается. И у Вас, вероятно, не очень-то и много макросов, если они разбиваются только по авторам. У меня же, например, на текущий момент на практике разбивка сложилась по 32 позициям. И на первом уровне — по макрообластям их действия.

А насчёт модулей и ещё вопрос по поводу того, что иногда в _macroinit.lua модуль регистрируется его автором по определённому адресу. Как Вы в таком случае поступаете? Корректируете запись о модуле в _macroinit.lua?
Предлагаете повесить все функции на один ключ? И пусть юзер выбирает из МЕНЮ?
Именно. И из-за такого простого приёма (спасибо Shmuel`ю) и возникает существенно более комфортный вариант обращения с макросами. И, прежде всего, весьма снижается нагрузка на память, поскольку запоминать приходится намного меньше ключей. А заодно и великое множество ключей экономится для назначения на макросы (фактически — на группы макросов), что тоже немаловажно.
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

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

Post by Shmuel »

Ann wrote: Fri 19 Mar, 2021 23:19 А насчёт модулей и ещё вопрос по поводу того, что иногда в _macroinit.lua модуль регистрируется его автором по определённому адресу. Как Вы в таком случае поступаете? Корректируете запись о модуле в _macroinit.lua?
1. Вызов модуля из _macroinit.lua иногда может потребоваться, но вообще это плохая практика. Модули должны вызываться при их первом использовании, то есть как правило изнутри ф-ции action макросов. Это снижает потребление памяти и убыстряет загрузку макросов.

2. Раскладывать модули (но не макрофайлы) по папкам с именами/никами авторов - хорошая идея, особенно если имя модуля неоригинально и легко может встретиться у разных авторов.
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: Fri 19 Mar, 2021 23:19 или ещё не заглядывали в приаттаченный архив
Не, не заглядывал.
Ann wrote: Fri 19 Mar, 2021 23:19 на первом уровне — по макрообластям их действия
А если в одном файле несколько макросов, делающих одно и то же в разных областях? Не, не катит.
На самом деле первый уровень, есессно, автор. Внутри иногда "свалка" (как, например, SimSU или IgorZ). Мои разбиты.
Ann wrote: Fri 19 Mar, 2021 23:19 модуль регистрируется его автором по определённому адресу
Я не знаю, что такое «модуль регистрируется». Запросы request в _macroinit считаю плохим стилем. Всё равно второй раз не загрузится, поэтому проще всё вызывать в скрипте. Я загружаю модули в _G только для удобства отладки (мои скрипты могут подставлять имена полей таблиц, входящих в _G).
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 »

Shmuel wrote: Fri 19 Mar, 2021 23:40 Раскладывать модули (но не макрофайлы) по папкам … хорошая идея
Может, обоснуете? Почему макрофайлы раскладывать - идея плохая?
На самом деле у меня только да аргумента за "раскладывание" макрофайлов по папкам: (а) удобство просмотра/редактирования/отладки (тем, кто сам макросы не пишет, это не аргумент) и (б) возможность вызывать справку в стандартных функциях far, указывая папку (увы, имя файла там не указать).
User avatar
Ann
Posts: 478
Joined: Tue 26 Jun, 2007 11:05
Has thanked: 141 times
Been thanked: 45 times

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

Post by Ann »

Shmuel,
buniak_a_h wrote: Sat 20 Mar, 2021 01:36
Shmuel wrote: Fri 19 Mar, 2021 23:40 Раскладывать модули (но не макрофайлы) по папкам … хорошая идея
Может, обоснуете? Почему макрофайлы раскладывать - идея плохая?
Присоединяюсь к вопросу. Очень полезно было бы узнать и Вашу практику, и Вашу аргументацию по этому вопросу. И, если не затруднит, то и с примерами бы.

buniak_a_h,
buniak_a_h wrote: Sat 20 Mar, 2021 00:57
Ann wrote: Fri 19 Mar, 2021 23:19 на первом уровне — по макрообластям их действия
А если в одном файле несколько макросов, делающих одно и то же в разных областях?
В один из разделов (на практике чаще получается, что в Shell или в Common; но и Dialog, и Editor тоже весьма заполнены) кладу активный макрос, а во все другие его копию с добавлением "хвостика" к окончанию файла: .lua.txt. Файл получается не активный и при заходе в папку такие файлы сразу же видны. (Умозрительно это как-то сложно описать, а на практике получается очень удобно.) И, да, это дублирование, но практика показывает, что весьма оправданное. А места сейчас на современных дисках более чем достаточно.
На самом деле первый уровень, есессно, автор
А вот при таком подходе свалка и запутанность просто неизбежны. Вот, ведь, и сами это подтверждаете:
Внутри иногда "свалка" (как, например, SimSU или IgorZ)
Имхо, расклад по авторам подходит разве что для хранения первичных архивных файлов, для истории и последующей раскладки скриптов по макрообластям, всё же.
Мои разбиты
А как именно они разбиты? Мне это очень интересно.
Post Reply

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