Переходы и пометки сразу на обеих панелях

Здесь обсуждается всё, что касается макросов.
User avatar
Konstantin
Posts: 234
Joined: Wed 14 Jun, 2006 19:29
Location: Санкт-Петербург
Has thanked: 109 times
Been thanked: 5 times

Post by Konstantin »

Latest post of the previous page:

zg
Обязательно прочту всю документацию к Вашему великолепному плагину! Однако сам я тот макрос, к сожалению, не напишу! В этом вопросе я абсолютный дилетант. C большим трудом пытаюсь разбираться в тех макросах, которые дарят нам форумчане, и дай Бог, если понимаю то, что в них вижу, процента на два — максимум три.
Практические же потребности возникают вне зависимости от степени подготовленности и когда я их осознаю, то стараюсь изложить насколько возможно яснее.

С большим почтением, благодарностью за внимание и с пожеланием дальнейших творческих достижений!
«Раньше я думал, что чудаки это те, кто делают странные вещи. Теперь я знаю, что это те, кто называют других странными.» (П. Маккартни)
User avatar
Konstantin
Posts: 234
Joined: Wed 14 Jun, 2006 19:29
Location: Санкт-Петербург
Has thanked: 109 times
Been thanked: 5 times

Post by Konstantin »

есть вот такая удобная пара макропоследовательностей (различие отмечено):
  • Home CtrlEnter Tab CtrlO Home C D Space Right Del Del % S D % End Enter CtrlO Tab
    — выставление на пассивной панели синхронизируемой папки (с учётом, того, что в её пути и/или имени есть спэйсы).

    Home CtrlEnter Tab CtrlO Home C D Space Del Del % S D % End Enter CtrlO Tab
    — тоже, на тот случай, если в пути к папке и её имени нет спэйсов.
как их срастить в один макрос, который срабатывал бы как при наличии, так при отсутствии знаков пробелов в пути\имени?
Кажется, данная задачка решилась следующим образом:

Code: Select all

[HKEY_CURRENT_USER\Software\Far\KeyMacros\Shell\CtrlAltPgDn]
"Sequence"="$If ( PPanel.Visible ) Tab Add CtrlShift] Home Del Del Del C D Space \" % S D % BackSlash End \" ShiftHome CtrlC Esc ShiftIns Enter Tab $Else CtrlAltPgDn $End"
"DisableOutput"=dword:00000001
"EmptyCommandLine"=dword:00000001
"Description"="Выставление на пассивной панели синхронизируемой папки"
@="Выставление на пассивной панели синхронизируемой папки"
Код, правда, кривоват. В частности, после имени диска вставляется лишний обратный слэш, а в конце пути — лишняя кавычка, и обойти это мне пока не удаётся. Но код срабатывает, срабатывает быстро и за несколько дней глюков не обнаружено.

Буду признателен тому, кто захочет показать более изящный вариант решения задачи быстрого перехода в одноимённую папку на другом диске.

Особую благодарность за помощь в решении задачи выражаю [e]Bu$ter'у: Вы подтолкнули меня к правильной мысли искать ответ прежде всего через нахождение "Такого же каталога"!
Также ещё раз благодарю всех вышеупомянутых форумчан за помощь в нахождении более оптимальных способов организации быстрой наглядной синхронизации разветвлённой структуры папок.

Желаю всем аборигенам форума и его посетителям творческих удач!
Last edited by Konstantin on Mon 25 Jun, 2007 16:40, edited 1 time in total.
«Раньше я думал, что чудаки это те, кто делают странные вещи. Теперь я знаю, что это те, кто называют других странными.» (П. Маккартни)
User avatar
Konstantin
Posts: 234
Joined: Wed 14 Jun, 2006 19:29
Location: Санкт-Петербург
Has thanked: 109 times
Been thanked: 5 times

Post by Konstantin »

Первую задачу, кажется, удаётся решить следующим образом:

Code: Select all

REGEDIT4
; Макрос применяется при синхронизации папок с разветвлённой структурой. 
; В нём используются плагины «Расширенное сравнение (AdvCompare)» — авт. Alexey Samlyukov и «Расширенное выделение файлов (SelectingEx)» — авт. Евгений Семенцов/Eugene Sementsov 

[-HKEY_CURRENT_USER\Software\Far\KeyMacros\Shell\CtrlAltShift=]
[HKEY_CURRENT_USER\Software\Far\KeyMacros\Shell\CtrlAltShift=]
"Sequence"="F11 = Enter F11 j f $While (APanel.Folder && APanel.Selected && PPanel.Folder && panel.fexist(1,panelitem(0,0,0))) C D Space CtrlEnter Tab Enter Tab Enter F11 = Enter F11 j f $End"
"DisableOutput"=dword:00000001
"NoFiles"=dword:00000001
"Description"="Переход на обеих панелях в папки, содержащие различие (разные по наименованию файлы или/и папки), и выделение обнаруженного различия"
@="Переход на обеих панелях в папки, содержащие различие (разные по наименованию файлы или/и папки), и выделение обнаруженного различия"
Был бы очень благодарен поправкам и оптимизациям. В частности, почему-то не получается вживить в начало макроса проверку:

Code: Select all

"F11 %g = CheckHotkey ( \"=\" ); %h = CheckHotkey ( \"j\" ); Esc $If ( PPanel.Visible && %g && %h )" 
Большая благодарность авторам вышеупомянутых замечательных плагинов (Alexey Samlyukov, Евгений Семенцов/Eugene Sementsov), а также авторам (HaRT, [e]Bu$ter, jbak, DrKnS, Zeroes) любезно предоставленных макросов, которые сами по себе полезно и удобно использовать и на примере которых легче осваивать возможности маросов ФАРа!

Всем форумчанам успехов в совершенствовании ФАРа!
«Раньше я думал, что чудаки это те, кто делают странные вещи. Теперь я знаю, что это те, кто называют других странными.» (П. Маккартни)
Post Reply

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