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

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

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

Post by IgorZ » Fri 24 Jan, 2014 09:51

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

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

Attachments
BookmarkManager.2.5.2.7z
(19.32 KiB) Downloaded 11 times
Last edited by IgorZ on Sat 12 Aug, 2017 16:18, edited 6 times in total.

User avatar
sToLp
Posts: 712
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 31 times
Been thanked: 5 times

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

Post by sToLp » Mon 25 Jan, 2016 09:32

Latest post of the previous page:

Поскольку изначальный способ работы со скриптом - нажатие Ctrl-комбинаций, то все вводимые имена закладок преобразуются в допустимые символы. К примеру, Игры->BUHS (то есть, команда bm:Игры полностью аналогична по эффекту команде bm:BUHS
Это весьма полезное свойство, т.к. оно удобно для тех, кому приходится часто работать в русской раскладке тоже.
И поэтому указание на это свойство макроса, имхо, хорошо бы поместить в шапку и справку.

И нельзя ли ещё для удобства добавить также возможность вызова макроса по префиксу :?
То есть чтобы, к примеру, закладку "Игры" можно было вызывать командой ::Игры (или ::Buhs), а меню макроса просто командой ::
(Если я не ошибаюсь, ныне префикс : плагинами не занят, а раньше, в Фар1, он применялся в плагине Alias)

User avatar
HaRT
Moderator
Posts: 8048
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 67 times
Been thanked: 100 times

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

Post by HaRT » Mon 25 Jan, 2016 17:42

sToLp wrote: (Если я не ошибаюсь, ныне префикс : плагинами не занят, а раньше, в Фар1, он применялся в плагине Alias)
Так ведь и сейчас кто-то наверняка пользуется этим плагином уже в Фар 3. Поэтому, считаю, нехорошо по умолчанию занимать этот префикс. Но ничего не имею против возможности задать его осознанно явно.
Фар есть инструмент, а не нянька. © 2009 DrKnS

IgorZ
Posts: 459
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 6 times
Been thanked: 9 times

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

Post by IgorZ » Tue 26 Jan, 2016 06:49

GAAlex wrote:Вопрос: а возможно реализовать вложенность меню? было бы очень удобно
Технически возможно всё. Ну или практически всё. Но Ваше предложение противоречит назначению скрипта: быстрому созданию закладок и переходу по ним. Меню здесь - вспомогательный инструмент, и усложнять основную функциональность ради какой-то не особо важной фишки в дополнительной я не буду. К тому же неясно, зачем вообще вложенные меню. Вы собираетесь завести себе сотни закладок, раз боитесь потеряться в отсортированном плоском списке?
P. S. Впрочем, если Вы сумеете переубедить меня, разумно и логично обосновав необходимость вложенных меню если не для всех, то хотя бы для многих, то, возможно, сделаю.

IgorZ
Posts: 459
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 6 times
Been thanked: 9 times

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

Post by IgorZ » Tue 26 Jan, 2016 06:50

sToLp wrote:
Поскольку изначальный способ работы со скриптом - нажатие Ctrl-комбинаций, то все вводимые имена закладок преобразуются в допустимые символы. К примеру, Игры->BUHS (то есть, команда bm:Игры полностью аналогична по эффекту команде bm:BUHS
Это весьма полезное свойство, т.к. оно удобно для тех, кому приходится часто работать в русской раскладке тоже.
И поэтому указание на это свойство макроса, имхо, хорошо бы поместить в шапку и справку.

И нельзя ли ещё для удобства добавить также возможность вызова макроса по префиксу :?
То есть чтобы, к примеру, закладку "Игры" можно было вызывать командой ::Игры (или ::Buhs), а меню макроса просто командой ::
(Если я не ошибаюсь, ныне префикс : плагинами не занят, а раньше, в Фар1, он применялся в плагине Alias)
1. Допишу. Будет в следующей версии.
2. Вызов меню префиксом сделаю.
3. Насчёт префикса ":" - не знаю, проверю, получится ли.

P. S.
Проверил.
П. 2 уже работает. При наборе bm: выводится меню со списком всех закладок и переменных окружения. Правда, там возможно только переходить, функции добавления/редактирования/удаления недоступны. Оставить так, или необходима полная функциональность?
П. 3 не получится. Добавить префикс ":" не выходит, он тупо не появляется в списке доступных. Дополнительная проверка показала, что односимвольные префиксы вообще не работают, хоть и появляются в списке префиксов плагина (кроме ":").

GAAlex
Posts: 11
Joined: Sun 16 Aug, 2015 05:48
Been thanked: 2 times

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

Post by GAAlex » Tue 26 Jan, 2016 09:45

IgorZ
Смысл в том, что у меня портабельная сборка, лежащая в Dropbox, да еще я ее таскаю для настройки компов.
Соответственно пункты меню примерно такие:
1. Работа
2. Дом
2.1 Фильмы
2.1.1 Фильмы на D диске
2.1.2 Фильмы на F диске
3 Общие
4 Служебные каталоги для настройки

IgorZ
Posts: 459
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 6 times
Been thanked: 9 times

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

Post by IgorZ » Tue 26 Jan, 2016 11:19

GAAlex wrote:IgorZ
Смысл в том, что у меня портабельная сборка, лежащая в Dropbox, да еще я ее таскаю для настройки компов.
Соответственно пункты меню примерно такие:
1. Работа
2. Дом
2.1 Фильмы
2.1.1 Фильмы на D диске
2.1.2 Фильмы на F диске
3 Общие
4 Служебные каталоги для настройки
Для начала, компьютерозависимые закладки посоветую вынести в локальные (и вообще разделить локальную и переносимую части профиля, если это не было сделано раньше). Это позволит выкинуть в каждом случае заведомо ненужные ссылки (зачем на работе ссылки на фильмы с домашнего компьютера?). Кстати, по фильмам: они что, лежат каждый в своей папке, и Вы их регулярно пересматриваете? Вряд ли, значит там не так много ссылок. Теперь считаем, сколько ссылок имеем на одном компьютере и прикидываем, все ли они нужны. На используемые раз в месяц вряд ли имеет смысл делать закладки. В общем, если Вы не помните каждую закладку на память, то у Вас их, скорее всего, слишком много, или Вы используете возможности скрипта нерационально.
И ещё. В скрипте с недавних пор есть механизм выбора. Вы набираете часть имени закладки, и скрипт выдаёт Вам список, отфильтрованный по введённому шаблону. Если Вы дёте закладкам осмысленные имена, то это позволит Вам получать каждый раз небольшой список (даже если всего у Вас будет несколько сот закладок).
В общем, попробуйте сначала рационально использовать уже имеющиеся возможности.

User avatar
sToLp
Posts: 712
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 31 times
Been thanked: 5 times

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

Post by sToLp » Tue 26 Jan, 2016 15:38

IgorZ wrote:При наборе bm: выводится меню со списком всех закладок и переменных окружения. Правда, там возможно только переходить, функции добавления/редактирования/удаления недоступны. Оставить так, или необходима полная функциональность?
Разумеется, более широкая функциональность меню была бы удобнее. И, прежде всего, хотелось бы иметь возможность использовать хоткеи для переходов по закладкам прямо из этого меню. Ну и, конечно, добавлять/редактировать/удалять закладки.

Полагаю, что раз уж Вы спросили об этом, то наверняка имеете представление о том, как это сделать.

Касательно же префикса : будем надеяться, что фартим подскажет, или найдёт способ. Раньше ведь этот префикс использовался. Значит, в принципе, возможно? В крайнем случае, можно будет попробовать эмулировать его алиасом. К примеру, алиас :=lua:Plugin.Menu("4EBBEFC8-2084-4B7F-94C0-692CE136894D","7CD7B065-FC92-4859-AFB1-F042485542B5") отлично вызывает меню макроса.
Last edited by sToLp on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: Добавлена ссылка на отделённую тему

IgorZ
Posts: 459
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 6 times
Been thanked: 9 times

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

Post by IgorZ » Wed 27 Jan, 2016 10:13

sToLp wrote:
IgorZ wrote:При наборе bm: выводится меню со списком всех закладок и переменных окружения. Правда, там возможно только переходить, функции добавления/редактирования/удаления недоступны. Оставить так, или необходима полная функциональность?
Разумеется, более широкая функциональность меню была бы удобнее. И, прежде всего, хотелось бы иметь возможность использовать хоткеи для переходов по закладкам прямо из этого меню. Ну и, конечно, добавлять/редактировать/удалять закладки.
Начиная с версии 1.2.1 хоткеи в меню поддерживаются. Нажмите RCtrl и набирайте с ним желаемую закладку. В справке, кстати, это есть, хоть и несколько коряво изложено.
Кстати, добавлять/редактировать/удалять закладки охота только из полного меню, или из сокращённого тоже? С сокращённым могут быть подводные камни.
sToLp wrote:Полагаю, что раз уж Вы спросили об этом, то наверняка имеете представление о том, как это сделать.
Полагаю, что раз уж я написал этот скрипт, то имею представление о том, как внести желаемые изменения. :) Тем более, что в данном случае они будут минимальны.
sToLp wrote:Касательно же префикса : будем надеяться, что фартим подскажет, или найдёт способ. Раньше ведь этот префикс использовался. Значит, в принципе, возможно? В крайнем случае, можно будет попробовать эмулировать его алиасом. К примеру, алиас :=lua:Plugin.Menu("4EBBEFC8-2084-4B7F-94C0-692CE136894D","7CD7B065-FC92-4859-AFB1-F042485542B5") отлично вызывает меню макроса.
Поживём - увидим. У префикса ":" есть один недостаток. Поскольку он очень удобен для набора, больше, чем какой-либо другой, то претендовать на него будут все. Я бы предложил сделать его вызовом последнего набранного префикса или чем-то в этом роде.

User avatar
sToLp
Posts: 712
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 31 times
Been thanked: 5 times

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

Post by sToLp » Wed 27 Jan, 2016 14:50

IgorZ wrote: Начиная с версии 1.2.1 хоткеи в меню поддерживаются.
Увидел, что , и подумал, что их нет. Теперь, кажется, разобрался, что есть. Спасибо за подсказку!
Кстати, добавлять/редактировать/удалять закладки охота только из полного меню, или из сокращённого тоже?
Главное, чтобы команды можно было вызывать из меню макроса, вызываемое через меню плагинов. Но ведь это тоже уже и сейчас делается вроде бы клавишами F4, F5, Ins и Del. А что такое "сокращённое меню"?

IgorZ
Posts: 459
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 6 times
Been thanked: 9 times

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

Post by IgorZ » Thu 28 Jan, 2016 06:01

sToLp wrote:
Кстати, добавлять/редактировать/удалять закладки охота только из полного меню, или из сокращённого тоже?
Главное, чтобы команды можно было вызывать из меню макроса, вызываемое через меню плагинов. Но ведь это тоже уже и сейчас делается вроде бы клавишами F4, F5, Ins и Del.
Тогда я вообще не понял, о чём была хотелка.
sToLp wrote:А что такое "сокращённое меню"?
На картинке Ваше меню? Тогда, если Вы при нажатом RCtrl наберёте TE и отпустите RCtrl, то выйдет сокращённое меню из пунктов TEST,SystemDrive,SystemRoot,TEMP. В нём можно только перейти по закладке или отказаться от перехода, редактирование, добавление и удаление недоступны. То же самое произойдёт при наборе в командной строке bm:te. Сокращённые меню присутствуют с версии 2.0, в истории версий упомянуты.

Arama
Posts: 68
Joined: Mon 01 Jun, 2015 12:14
Has thanked: 2 times
Been thanked: 1 time

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

Post by Arama » Thu 28 Jan, 2016 15:16

Отличный макрос!
Но нельзя ли как-нибудь отключить RCtrl+последовательность клавиш и оставить только RCtrl+/.
У меня после установки перестали работать хоткеи RCtrl+L, RCtrl+O к которым я очень привык.
Сам я не силен в написании макросов.
Хотелось бы иметь версию lite, где можно было бы только вызывать по RCtrl+/ и стрелочками выбирать куда переходить.

User avatar
cmd.exe
Posts: 319
Joined: Fri 16 Apr, 2010 18:26
Location: Нижний Новгород
Has thanked: 170 times
Been thanked: 5 times
Contact:

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

Post by cmd.exe » Thu 28 Jan, 2016 16:37

Arama wrote:У меня после установки перестали работать хоткеи RCtrl+L, RCtrl+O к которым я очень привык.
Происходит захват нажатий при нажатии RCtrl. По пойму это фитча данного модуля.
I've been using Vim for about 2 years now, mostly because I can't figure out how to exit it. (c) I Am Devloper
I know nothing except the fact of my ignorance. (с) Socrates

Arama
Posts: 68
Joined: Mon 01 Jun, 2015 12:14
Has thanked: 2 times
Been thanked: 1 time

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

Post by Arama » Thu 28 Jan, 2016 18:21

cmd.exe wrote: Происходит захват нажатий при нажатии RCtrl. По пойму это фитча данного модуля.
немножко не так, пока я букмарки не заполнил, все вызывалось, а теперь идет обработка RCtrl+последовательность клавиш и макрос находит O и L и поднимаем список, а мне бы хотелось, чтобы список букмарков поднимался только по RCtrl+/, а последовательность клавиш не обрабатывалась. Конечно это снизит функциональность, но для меня она избыточна.

IgorZ
Posts: 459
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 6 times
Been thanked: 9 times

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

Post by IgorZ » Fri 29 Jan, 2016 05:55

Arama wrote:Отличный макрос!
Но нельзя ли как-нибудь отключить RCtrl+последовательность клавиш и оставить только RCtrl+/.
У меня после установки перестали работать хоткеи RCtrl+L, RCtrl+O к которым я очень привык.
Сам я не силен в написании макросов.
Хотелось бы иметь версию lite, где можно было бы только вызывать по RCtrl+/ и стрелочками выбирать куда переходить.
Поскольку Вы предлагаете выкинуть основную функциональность, то в скрипте для всех я этого делать не буду. Персонально для Вас могу предложить несколько способов решения проблемы.
  1. Использовать комбинации с левым Ctrl - его скрипт не затрагивает.
  2. Для CtrlO использовать стандартный макрос, назначающий это действие на Esc. Кстати, очень удобно, на мой взгляд.
  3. Поместить в папку scripts нижеследующий файл:
    1. Macro {
    2.   area="Shell Info QView Tree"; key="CtrlO"; description="Toggle panels on/off"; priority=60; action = function() Keys('CtrlO') end;
    3. }
    4. Macro {
    5.   area="Shell Info QView Tree"; key="CtrlL"; description="Toggle info on/off"; priority=60; action = function() Keys('CtrlL') end;
    6. }
    Он будут перехватывать CtrlO и CtrlL, выполняя их сам.

    Странно. Попробовал скачать для проверки, вместо .lua файлу по умолчанию подставилось расширение .htm. Так что советую быть внимательным и в таком случае вручную переименовать файл.
  4. Радикальный вариант. В конце BookmarkManager.lua удалить следующий фрагмент:

    Code: Select all

    Macro{
      area="Shell"; key="/RCtrl[^\\/]/"; description=L.GoToDesc; uid=Guids.GoToMacro;
      condition = function() LoadSettings() return not InProcess and (UseLocal or UseGlobal or UseEnv) and 55 end; action=BMGoToFolder;
    }
    
    Это полностью исключит возможность перехода на закладки с помощью RCtrlЗакладка.

Arama
Posts: 68
Joined: Mon 01 Jun, 2015 12:14
Has thanked: 2 times
Been thanked: 1 time

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

Post by Arama » Fri 29 Jan, 2016 10:07

IgorZ wrote: Поскольку Вы предлагаете выкинуть основную функциональность, то в скрипте для всех я этого делать не буду.
я предлагал сделать lite версию макроса :)
IgorZ wrote: Радикальный вариант. В конце BookmarkManager.lua удалить следующий фрагмент
Вот это помогло! Спасибо огромное за помощь!!!

User avatar
sToLp
Posts: 712
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 31 times
Been thanked: 5 times

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

Post by sToLp » Sun 31 Jan, 2016 11:55

IgorZ wrote: Сокращённые меню присутствуют с версии 2.0, в истории версий упомянуты.
И в самом макросе, и в постах по нему Вы очень лаконично формулируете справочные сведения (что само по себе, по-моему, весьма правильно), но я не сразу в них врубаюсь, а только после пояснений и дополнительной практики.
Поупражнявшись же с макросом основательнее, утвердился для себя в следующих его наиболее полезных в моей практике возможностях:
— переход по закладкам префиксами комстроки;
— применение в качестве закладок переменных среды тоже;
— вызов меню макроса префиксами комстроки, в т.ч. при неполном вводе имени закладки вывод сокращённого меню;
— вызов меню макроса через меню плагинов (т.е., соответственно, — и по гуидам), и, таким образом, возможность эмуляции алиасами практически любых префиксов.
И поэтому теперь могу более осознанно ответить на Ваш вопрос:
добавлять/редактировать/удалять закладки охота только из полного меню, или из сокращённого тоже?
Да. Иметь возможность вызывать эти команды из сокращённого меню желательно бы тоже.

IgorZ
Posts: 459
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 6 times
Been thanked: 9 times

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

Post by IgorZ » Mon 08 Feb, 2016 09:54

Версия 2.1.1 - Добавлено: Сокращённые меню позволяют все те же действия, что и полное. Исправлено: Комбинации RCtrlЦифра передаются Far-у, если такой закладки или переменной нет. Не совпадающие даже частично ни с одной закладкой или переменной окружения, содержащей путь, тоже. (то и другое поломалось в связи с добавлением меню при неполном наборе закладки)

Post Reply

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