Менеджер закладок для папок

Здесь выкладываются готовые к использованию макросы и скрипты.
IgorZ
Posts: 660
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 12 times
Been thanked: 52 times

Менеджер закладок для папок

Post by IgorZ »

Данный скрипт позволяет назначать на папки и файлы закладки (закладка может содержать ссылки как на одну, так и на несколько целей, для разных панелей; подробнее во встроенной справке скрипта) и переходить по ним (или запускать их средствами ОС), а также по переменным окружения, содержащим пути. Идея взята у Shell Bookmark (с) Max Rusov, текст написан с нуля.
Скрипт содержит три макроса.
  • Сохранение текущей папки в новой закладке.
    Клавиша вызова: RCtrl+Shift/RAlt+последовательность клавиш.
  • Переход по закладке.
    Клавиша вызова: RCtrl+последовательность клавиш.
  • Меню закладок и настроек.
    Клавиша вызова: RCtrl+/.

Требуемая версия Far 3.0.4324+.

Attachments
BookmarkManager.3.0.3.7z
(24.5 KiB) Downloaded 44 times
Last edited by IgorZ on Mon 09 Dec, 2019 12:26, edited 16 times in total.

vasyabelkin
Posts: 1
Joined: Mon 31 Jul, 2017 20:11
Has thanked: 1 time

Менеджер закладок для папок

Post by vasyabelkin »

Latest post of the previous page:

IgorZ, Если вызвать меню сразу после установки плагина, получим

Code: Select all

 C:\progs\conTools\Far\Plugins\LuaMacro\LuaMacro.dll:
 ...g\far\Macros\scripts\BookmarkManager\BookmarkManager.lua:427: attempt to get length of local 'l' (a nil value)
 stack traceback:
    ...g\far\Macros\scripts\BookmarkManager\BookmarkManager.lua:427: in function 'prep_menu'
    ...g\far\Macros\scripts\BookmarkManager\BookmarkManager.lua:488: in function 'BMMenu'
    ...g\far\Macros\scripts\BookmarkManager\BookmarkManager.lua:605: in function 'action'
    C:\progs\conTools\Far\Plugins\LuaMacro\LuaMacro.lua:426: in function <C:\progs\conTools\Far\Plugins\LuaMacro\LuaMacro.lua:380>
Гляньте, пожалуйста

IgorZ
Posts: 660
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 12 times
Been thanked: 52 times

Менеджер закладок для папок

Post by IgorZ »

Версия 2.4.2 - Исправлена ошибка с вызовом меню при пустом списке закладок. Исправлены свежевыявленные ошибки в справке.

Внимание!!!
В выложенную версию прокралась ошибка! Версия перевыложена. Кто успел скачать - перекачайте.
Last edited by IgorZ on Tue 01 Aug, 2017 12:59, edited 1 time in total.

IgorZ
Posts: 660
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 12 times
Been thanked: 52 times

Менеджер закладок для папок

Post by IgorZ »

Понадобился мне по работе NetBox. Внезапно выяснилось, что его закладки не работают - я не совсем корректно сохраняю данные о папке плагина. В итоге пришлось полностью переделывать эту часть алгоритма (и кое-что из остального). Так что
Версия 2.5.0 - Изменён формат хранения закладок в БД. Старый формат пока поддерживается. Рефакторинг.
Зато теперь, по идее, проблем с закладками, вообще не должно быть в принципе. Если старую закладку открыть в редакторе (по F4) и сохранить, она перезапишется в новом формате. А если выкрою время, сделаю конвертор закладок в новый формат и выпущу версию без поддержки старого.

skipik
Posts: 165
Joined: Wed 03 Jun, 2015 15:24
Has thanked: 21 times
Been thanked: 18 times

Менеджер закладок для папок

Post by skipik »

Поставил версию 2.5.0. Открываю RCrtl/, далее пытаюсь зайти, например, в ALLUSERSPROFILE, получаю такое:

+ ещё один подобный репорт: http://forum.ru-board.com/topic.cgi?for ... art=3460#5

IgorZ
Posts: 660
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 12 times
Been thanked: 52 times

Менеджер закладок для папок

Post by IgorZ »

Версия 2.5.1 - Исправлены некоторые недоделки и упущения предыдущей версии. Переменные окружения, во всяком случае, теперь у меня работают (извиняюсь, забыл про них, был в Попыхах... :))
IgorZ wrote:
Wed 09 Aug, 2017 05:22
А если выкрою время, сделаю конвертор закладок в новый формат и выпущу версию без поддержки старого.
А вот этого не будет. Поскольку скрипт понимает префиксы командной строки, то от поддержки строкового формата всё равно не избавиться.
Last edited by IgorZ on Fri 11 Aug, 2017 05:16, edited 1 time in total.

skipik
Posts: 165
Joined: Wed 03 Jun, 2015 15:24
Has thanked: 21 times
Been thanked: 18 times

Менеджер закладок для папок

Post by skipik »

Исправлено, спасибо!
Но есть ещё кое что: AltF1/AltF2 -> Меню Закладок -> Enter. Получаем:

+ ещё репорт: http://forum.ru-board.com/topic.cgi?for ... art=3460#6

IgorZ
Posts: 660
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 12 times
Been thanked: 52 times

Менеджер закладок для папок

Post by IgorZ »

Версия 2.5.2 - Исправлен вызов из меню дисков, там же изменена логика работы.Теперь при вызове из меню дисков всегда меняется только путь на той панели, для которой вызвано меню. Ну и соответстующие поправки в остальное. Закладки при этом показываются урезанными, но при редактировании выдаются целиком. Полностью пустые закладки показываются, но для перехода недоступны. И т. д. Надеюсь, с работой над ошибками всё.

IgorZ
Posts: 660
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 12 times
Been thanked: 52 times

Менеджер закладок для папок

Post by IgorZ »

Версия 2.5.3 - Теперь можно указать с помощью модификатора "C" необходимость смены панели. Простой пример:
  • <L>%TEMP% откроет на левой панели временную папку.
  • <LC>%TEMP% откроет на левой панели временную папку, и сделает левую панель активной.

Volodya
Posts: 239
Joined: Thu 31 Mar, 2005 19:41
Has thanked: 2 times

Менеджер закладок для папок

Post by Volodya »

Установил макрос в %FARPROFILE%\Macros\scripts\BM\
Посмотрел из меню дисков BookmarkManager меню.
Посмотрел help по bmhlep:
Добавил закладку командой:
bmag:qwe D:\foo\bar\
Попытался ещё раз посмотреть BookmarkManager меню.
Получил
╔══════════════════════════════════════════════════════════════════ Error ══════════════════════════════════════════════════════════════════╗
║ C:\Program Files (x86)\Far Manager\Plugins\LuaMacro\LuaMacro.dll: ║
║ ...ar Manager\Profile\Macros\scripts\BM\BookmarkManager.lua:196: attempt to concatenate a nil value ║
║ stack traceback: ║
║ ...ar Manager\Profile\Macros\scripts\BM\BookmarkManager.lua:196: in function 'BM2str' ║
║ ...ar Manager\Profile\Macros\scripts\BM\BookmarkManager.lua:227: in function 'NiceFolder' ║
║ ...ar Manager\Profile\Macros\scripts\BM\BookmarkManager.lua:514: in function 'fill_menu' ║
║ ...ar Manager\Profile\Macros\scripts\BM\BookmarkManager.lua:528: in function 'BMMenu' ║
║ ...ar Manager\Profile\Macros\scripts\BM\BookmarkManager.lua:638: in function 'action' ║
║ ...am Files (x86)\Far Manager\Plugins\LuaMacro\LuaMacro.lua:442: in function <...am Files (x86)\Far Manager\Plugins\LuaMacro\LuaMacro. ║
║ lua:396> ║
╟───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╢
║ { OK } ║
╚═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝
Windows Version 10.0.16299.125 x64
Far 3.0.5119 x86
BookmarkManager 2.5.3.7

Что я делаю не так?

IgorZ
Posts: 660
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 12 times
Been thanked: 52 times

Менеджер закладок для папок

Post by IgorZ »

Volodya wrote:
Fri 05 Jan, 2018 09:03


Что я делаю не так?
Заставляете ленивого автора на каникулах :beer: :popcorn: :angel: заниматься поиском :Search: и правкой :hacking: мелких ошибок. :shit:
Версия 2.5.4 - Работа над ошибками.

P. S. Всем советую закладки, сделанные версией 2.5.3, проверить на корректность наличия модификатора "C". Мог ставиться туда, где не должен быть, и наоборот.
Last edited by IgorZ on Fri 05 Jan, 2018 13:58, edited 1 time in total.

Volodya
Posts: 239
Joined: Thu 31 Mar, 2005 19:41
Has thanked: 2 times

Менеджер закладок для папок

Post by Volodya »

Версия 2.5.4
Нажимаю Rctrl\
Получаю
╔════════════════════════════════════════════════════════════════ LuaMacro ═════════════════════════════════════════════════════════════════╗
║ ...ar Manager\Profile\Macros\scripts\BM\BookmarkManager.lua:197: attempt to concatenate a nil value ║
║ stack traceback: ║
║ ...ar Manager\Profile\Macros\scripts\BM\BookmarkManager.lua: in function 'BM2str' ║
║ ...ar Manager\Profile\Macros\scripts\BM\BookmarkManager.lua:228: in function 'NiceFolder' ║
║ ...ar Manager\Profile\Macros\scripts\BM\BookmarkManager.lua:515: in function 'fill_menu' ║
║ ...ar Manager\Profile\Macros\scripts\BM\BookmarkManager.lua:529: in function <...ar Manager\Profile\Macros\scripts\BM\BookmarkManager. ║
║ lua:462> ║
╟───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╢
║ { OK } ║
╚═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝
Вопрос тот же. ЧЯДНТ?

IgorZ
Posts: 660
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 12 times
Been thanked: 52 times

Менеджер закладок для папок

Post by IgorZ »

Volodya wrote:
Fri 05 Jan, 2018 18:25
Версия 2.5.4
Нажимаю Rctrl\
Получаю

Вопрос тот же. ЧЯДНТ?
Некорректно сохранившаяся закладка осталась (тут я недодумал в прошлый раз). Для исправления ситуации можно строку 197

Code: Select all

  s = s..(f.CD and (f.Panel:match("(<.*)>").."C>") or f.Panel)..f.Plugin.."|"..f.File.."|"..f.Folder.."|"..f.Param
исправить на

Code: Select all

  s = s..(f.CD and f.Panel~="" and (f.Panel:match("(<.*)>").."C>") or f.Panel)..f.Plugin.."|"..f.File.."|"..f.Folder.."|"..f.Param
После этого запустить скрипт, удалить эту закладку и работать дальше.
Это самый простой способ. Или же можно удалить или изменить вручную закладку с помощью дополнительных инструментов, таких как SQLiteDB или Редактор БД плагинов. Это несколько сложнее, но если есть желание, надо параметр CD у соответствующей закладки изменить с 1 на 0.

P. S. Для цитирования диалогов с сообщениями об ошибках и т. п. советую использовать тег code - выглядит намного аккуратнее и читается легче.

buniak_a_h
Posts: 1389
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 95 times
Been thanked: 105 times
Contact:

Менеджер закладок для папок

Post by buniak_a_h »

IgorZ, если Вы ещё не забросили тему, есть пара пожеланий.
Ваш скрипт очень похож по функционалу на плагин NamedFolders.
  • Хочется иметь возможность указывать не целиком имя подкаталога, а маску или начало. Например, в каталоге D:\Root, занесённом в закладку ROOT, есть подкаталоги SYSTEM и несколько каталогов вида SAVE_01, SAVE_02... . Хотелось бы иметь возможность перейти командой BM:\ROOT\SY сразу на SYSTEM (т.к. он - единственный, подходящий по маске), а по команде BM:ROOT\SA* (или без звёздочки) - получить МЕНЮ со всеми подкаталогами D:\Root\SAVE_*.
  • Из той же темы: хотелось бы иметь возможность и в качестве диска указывать "*" (*:\Root).
  • Если после "\" указано имя не каталога, а файла, то позиционироваться на этом файле. Думаю, это - совсем просто.
  • Задачка сложнее, но была очень удобной в старом Named Folders: кроме Environment-переменных в список добавить папки, на которые ссылаются элементы главного меню. В NamedFolders была даже возможность не просто переходить в папку, а ещё и запускать приложение. Это было бы вообще идеально, но я понимаю, что это уж совсем много хочу...

buniak_a_h
Posts: 1389
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 95 times
Been thanked: 105 times
Contact:

Менеджер закладок для папок

Post by buniak_a_h »

Last edited by buniak_a_h on Fri 04 May, 2018 20:15, edited 6 times in total.

buniak_a_h
Posts: 1389
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 95 times
Been thanked: 105 times
Contact:

Менеджер закладок для папок

Post by buniak_a_h »

Last edited by buniak_a_h on Fri 04 May, 2018 20:15, edited 2 times in total.

buniak_a_h
Posts: 1389
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 95 times
Been thanked: 105 times
Contact:

Менеджер закладок для папок

Post by buniak_a_h »

Суммирую мои посты в один.
Итак, отличия от авторской версии:
  • Добавлена возможность указания wildcard ("*", "?") для "внутренних" (промежуточных) каталогов пути (для файловых панелей)
  • Добавлена возможность указывать в качестве имени диска выражения типа "*:" и "[C-Q]:" (регэкспы в формате FAR Manager-а)
  • добавлена возможность указывать в качестве целевого объекта не только папки, но и файлы. При этом выводится меню для выбора объекта даже если этот объект - единственный. Если выбрать файл [Enter]-ом, то происходит позиционирование на файле; если [Ctrl+PgDn], то открытие выбранного файла ассоциированной в системе программой; если [F4] - то ассоциированным в системе редактором.
  • Добавлена возможность указывать в пути "родительский" каталог (".."). Так, стало возможным при наличии закладки PLUGIN=%FARHOME%\Plugins переходить на каталог %FARHOME%\Encyclopedia введя команду bm:Plu\..\enc.
  • Добавлена возможность перехода даже не по закладкам, а по переменным окружения. Например, в каталоге %TEMP% имеются подкаталоги 180429, 180430, ... Команда bm:%temp%\18 выведет меню со списком подкаталогов (а, возможно, и файлов) с именами, начинающимися с 18, а команда bm:%path%\delphi32.exe найдёт файл delphi32.exe аналогично команде whereis:delphi32.exe
  • Добавлен интерфейсный режим работы с закладками. Предусмотрено два диалога: диалог сохранения закладок
    Image
    и диалог перехода на закладку
    Image
  • В диалоге сохранения закладки есть возможность указать, какую панель сохранять. возможен один из двух вариантов:
    • Активную и/или пассивную.
    • Левую и/или правую.
    Таким образом можно указать сохранение контекста (за исключением CurPos на
    панелях. Это - в планах).
Есть новости
Attachments
BookmarkManager.lua.bb.7z
(16.12 KiB) Downloaded 56 times
Last edited by buniak_a_h on Fri 04 May, 2018 20:10, edited 4 times in total.

Post Reply

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