Меню со списком родительских папок (CD up)

Здесь выкладываются готовые к использованию макросы и скрипты.
Shmuel
Posts: 5229
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 151 times

Меню со списком родительских папок (CD up)

Post by Shmuel » Mon 18 Jul, 2011 11:47

DV wrote:Портировал ли кто этот (или подобный) макрос под FAR3?
Независимая реализация той же функциональности + выравнивание по правому краю слишком длинных пунктов меню:
  1. local function FillTable(t, path)
  2.   while true do
  3.     path = path:match("(.*)\\[^\\]+$")
  4.     if path==nil then break end
  5.     t[#t+1] = {path=path.."\\"}
  6.   end
  7. end
  8.  
  9. local function ShowMenu()
  10.   local items = {}
  11.   if APanel.Plugin then
  12.     FillTable(items, APanel.Path)
  13.     if items[1] then items[#items+1] = { separator=true } end
  14.     items[#items+1] = { path=APanel.Path0 }
  15.   end
  16.   FillTable(items, APanel.Path0)
  17.   if items[1] then
  18.     for k,v in ipairs(items) do
  19.       if v.path then
  20.         local extra = v.path:len() - Far.Width + 8
  21.         v.text = extra<=0 and v.path or "..."..v.path:sub(extra+4)
  22.       end
  23.     end
  24.     local item = far.Menu({Title="Go to ..."}, items)
  25.     if item then Panel.SetPath(0, item.path) end
  26.   end
  27. end
  28.  
  29. Macro {
  30.   description="Menu with list of parent directories (CD up)";
  31.   area="Shell"; key="CtrlBS";
  32.   condition=function() return CmdLine.Empty and APanel.Visible end;
  33.   action=ShowMenu;
  34. }
Есть и ещё одна реализация на основе этого кода: GoUp.
HaRT wrote:Представляю на суд общественности свой вариант, сделанный на основе выложенного в шапке.
Отличия:
1. Добавлены горячие клавиши от 0 до Z, далее просто выравнивание пробелами.
2. Выбор элемента означает не переход в директорию, а переход на директорию — об этом напоминает отсутствие разделителя (‘\’) на концах путей.
3. При попытке перехода на саму букву диска открывается меню дисков.
4. Макрос назначен на [b]AltPgUp[/b].
Last edited by Shmuel on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: Добавлен и анонс скрипта GoUp

User avatar
Kerberos464
Posts: 1239
Joined: Wed 29 Jul, 2009 20:24
Location: Saint-Petersburg
Has thanked: 18 times
Been thanked: 1 time

Re: Меню со списком родительских папок (CD up)

Post by Kerberos464 » Mon 18 Jul, 2011 12:16

DV wrote:Помнится, был такой плагин - CDup - позволяющий прыгать из текущей папки в любую родительскую, вплоть до корня диска.
Теперь, с появлением макрофункции Menu.Show, это стало возможно и без плагина:

Code: Select all

$If (CmdLine.Empty && APanel.Visible && !APanel.Plugin) %mm = ""; %p = APanel.Path; %i = rindex(%p,"\\"); $While (%i >= 2) %p = substr(%p,0,%i); %mm = %mm + %p + "\\\r\n"; %i = rindex(%p,"\\"); $End $If (%mm != "") %p = Menu.Show(%mm, "Go to ..."); $If (%p != "") panel.setpath(0,%p); $End $End $End
Вешаем макрос на клавишу BS - и вуаля!
спасибо, удобно! :)
16.09.2012 14:35:28 +0200 - build 2799 - все нативные плагины перестали работать.
30.09.2012 03:26:20 +0200 - build 2851 - все макросы перестали работать.
31.02.2029 25:61:61 +0200 - build 6666 - весь фар перестал работать.

User avatar
Wave
Posts: 1721
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 2 times
Been thanked: 10 times

Re: Меню со списком родительских папок (CD up)

Post by Wave » Mon 18 Jul, 2011 12:31

Не работает на нефайловых панелях. В частности, на RegBrowser. Ну и на Bs лично у меня висит гораздо более привычный CtrlPgUp. Этот повесил на CtrlBs в обвязке с ещё одним.
Пользуюсь ФАРом больше 15 лет © собирательный.

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

Re: Меню со списком родительских папок (CD up)

Post by HaRT » Mon 18 Jul, 2011 12:38

Лично у меня подобное дано назначено на AltPgUp.
Фар есть инструмент, а не нянька. © 2009 DrKnS

DV
Posts: 308
Joined: Mon 07 Aug, 2006 08:23
Has thanked: 2 times
Been thanked: 2 times

Re: Меню со списком родительских папок (CD up)

Post by DV » Mon 18 Jul, 2011 13:04

HaRT wrote:Лично у меня подобное дано назначено на AltPgUp.
Но где же сам макрос? ;)

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

Re: Меню со списком родительских папок (CD up)

Post by HaRT » Mon 18 Jul, 2011 13:26

DV wrote:Но где же сам макрос? ;)
У меня не макрос, а скрипт для SHPCE (мир его праху).
Да к тому же вроде бы похожая функциональность уже была реализована в плагине HotDir.
Фар есть инструмент, а не нянька. © 2009 DrKnS

Maximus5
Posts: 3292
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 4 times
Contact:

Re: Меню со списком родительских папок (CD up)

Post by Maximus5 » Mon 18 Jul, 2011 14:19

макрос, поддерживающий плагиновые панели
Attachments
ParentUp.fml.7z
(611 Bytes) Downloaded 147 times

User avatar
DAtaMan
Posts: 262
Joined: Wed 24 Jun, 2009 10:01
Location: не отсюда

Re: Меню со списком родительских папок (CD up)

Post by DAtaMan » Mon 18 Jul, 2011 20:17

:crazy:
Во флагах макроса:

Code: Select all

[ ] Командная строка
Вроде работает в редакторах реестра, ArcLite и Observer.
2B OR NOT 2B = FF (Иногда code - это просто код. Почти Дйерф Омолш Днумзигис)
To ban or not to ban, that is the question. ©

igor_andreev
Posts: 6
Joined: Tue 22 Jun, 2010 08:02

Re: Меню со списком родительских папок (CD up)

Post by igor_andreev » Tue 19 Jul, 2011 07:09

Вах, как сразу удобно стало, всем спасибо :)

User avatar
DAtaMan
Posts: 262
Joined: Wed 24 Jun, 2009 10:01
Location: не отсюда

Re: Меню со списком родительских папок (CD up)

Post by DAtaMan » Wed 20 Jul, 2011 20:55


1. Добавлены хоткеи.
2. Возможна пометка нескольких путей. Тогда 1-ый отмеченный сверху - путь для активной панели, 2-ой - для пассивной.
2B OR NOT 2B = FF (Иногда code - это просто код. Почти Дйерф Омолш Днумзигис)
To ban or not to ban, that is the question. ©

User avatar
Wave
Posts: 1721
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 2 times
Been thanked: 10 times

Re: Меню со списком родительских папок (CD up)

Post by Wave » Wed 20 Jul, 2011 22:18

Макролиб ругается на FSPLIT_NAME (подозреваю, что следом ругнётся и на FSPLIT_EXT).
Пользуюсь ФАРом больше 15 лет © собирательный.

User avatar
DAtaMan
Posts: 262
Joined: Wed 24 Jun, 2009 10:01
Location: не отсюда

Re: Меню со списком родительских папок (CD up)

Post by DAtaMan » Wed 20 Jul, 2011 23:06

Wave wrote:Макролиб ругается на FSPLIT_NAME (подозреваю, что следом ругнётся и на FSPLIT_EXT).
Даже если импортировать "Addons\Macros\MacroConsts.reg" ?
2B OR NOT 2B = FF (Иногда code - это просто код. Почти Дйерф Омолш Днумзигис)
To ban or not to ban, that is the question. ©

DV
Posts: 308
Joined: Mon 07 Aug, 2006 08:23
Has thanked: 2 times
Been thanked: 2 times

Re: Меню со списком родительских папок (CD up)

Post by DV » Thu 21 Jul, 2011 08:38

Раз уж пошла такая пьянка :) то вот расширенный вариант самого первого макроса:

Что умеет: находясь внутри архива (плагин arclite) или же реестра (плагин registry), показывает двойной список "родительских" папок - сначала для плагиновой панели, потом для файловой панели, позволяя "выпрыгнуть" из архива в любую реальную папку выше. Также добавлена некоторая "магия" для исключения элементов "\" и "\\" из списка для плагина network.
Не умеет: показывать буквы дисков, но это можно прикрутить по желанию :)

DV
Posts: 308
Joined: Mon 07 Aug, 2006 08:23
Has thanked: 2 times
Been thanked: 2 times

Re: Меню со списком родительских папок (CD up)

Post by DV » Fri 13 Dec, 2013 16:41

Портировал ли кто этот (или подобный) макрос под FAR3?

Shmuel
Posts: 5229
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 151 times

Re: Меню со списком родительских папок (CD up)

Post by Shmuel » Fri 13 Dec, 2013 16:55

DV wrote:Портировал ли кто этот (или подобный) макрос под FAR3?
Только что, конвертером.

Shmuel
Posts: 5229
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 151 times

Re: Меню со списком родительских папок (CD up)

Post by Shmuel » Sun 15 Dec, 2013 18:28

DV wrote:Портировал ли кто этот (или подобный) макрос под FAR3?
Независимая реализация той же функциональности + выравнивание по правому краю слишком длинных пунктов меню:

Примечание модератора:
Код макроса перенесён в шапку темы.
Last edited by John Doe on Sun 15 Dec, 2013 18:28, edited 2 times in total.
Reason: Edit

Post Reply

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