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

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

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

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

DV wrote:Портировал ли кто этот (или подобный) макрос под FAR3?
Независимая реализация той же функциональности + выравнивание по правому краю слишком длинных пунктов меню:
  1. local function FillTable(t, path)
  2.  
  3.   while true do
  4.  
  5.     path = path:match("(.*)\\[^\\]+$")
  6.  
  7.     if path==nil then break end
  8.  
  9.     t[#t+1] = {path=path.."\\"}
  10.  
  11.   end
  12.  
  13. end
  14.  
  15.  
  16.  
  17. local function ShowMenu()
  18.  
  19.   local items = {}
  20.  
  21.   if APanel.Plugin then
  22.  
  23.     FillTable(items, APanel.Path)
  24.  
  25.     if items[1] then items[#items+1] = { separator=true } end
  26.  
  27.     items[#items+1] = { path=APanel.Path0 }
  28.  
  29.   end
  30.  
  31.   FillTable(items, APanel.Path0)
  32.  
  33.   if items[1] then
  34.  
  35.     for k,v in ipairs(items) do
  36.  
  37.       if v.path then
  38.  
  39.         local extra = v.path:len() - Far.Width + 8
  40.  
  41.         v.text = extra<=0 and v.path or "..."..v.path:sub(extra+4)
  42.  
  43.       end
  44.  
  45.     end
  46.  
  47.     local item = far.Menu({Title="Go to ..."}, items)
  48.  
  49.     if item then Panel.SetPath(0, item.path) end
  50.  
  51.   end
  52.  
  53. end
  54.  
  55.  
  56.  
  57. Macro {
  58.  
  59.   description="Menu with list of parent directories (CD up)";
  60.  
  61.   area="Shell"; key="CtrlBS";
  62.  
  63.   condition=function() return CmdLine.Empty and APanel.Visible end;
  64.  
  65.   action=ShowMenu;
  66.  
  67. }
Есть и ещё одна реализация на основе этого кода: 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: 1238
Joined: Wed 29 Jul, 2009 20:24
Location: Saint-Petersburg
Has thanked: 17 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: 1707
Joined: Thu 04 Aug, 2005 18:47
Location: Харьков, Украина
Has thanked: 2 times
Been thanked: 9 times
Contact:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Maximus5
Posts: 3291
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 141 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: 1707
Joined: Thu 04 Aug, 2005 18:47
Location: Харьков, Украина
Has thanked: 2 times
Been thanked: 9 times
Contact:

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: 280
Joined: Mon 07 Aug, 2006 08:23
Has thanked: 1 time
Been thanked: 2 times

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

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

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

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

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

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

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

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

Shmuel
Posts: 5048
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 11 times
Been thanked: 133 times

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

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

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

Shmuel
Posts: 5048
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 11 times
Been thanked: 133 times

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

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

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

Примечание модератора:
Код макроса перенесён в шапку темы.
Last edited by John Doe on Wed 18 Dec, 2013 12:07, edited 1 time in total.
Reason: Edit

Post Reply

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

Who is online

Users browsing this forum: No registered users and 2 guests