Переключение дисков по Ctrl/Alt/Shift+<-/->

Здесь выкладываются готовые к использованию макросы и скрипты.
User avatar
John Doe
Бюрократ
Posts: 11029
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 9 times
Been thanked: 61 times

Переключение дисков по Ctrl/Alt/Shift+<-/->

Postby John Doe » Fri 14 Nov, 2014 10:20

Latest post of the previous page:

Пункт в меню плагинов зачем-то добавляется и для диалогов (при этом не работает).
А в панелях неплохо бы обрабатывать Esc для отмены.
Кстати сейчас последовательность Esc Enter у меня почему-то гасит панели.

P.S.
И я вообще не очень понимаю какой сценарий применения при вызове из меню плагинов.
Какие преимущества перед AltF1/F2?

IgorZ
Posts: 418
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 4 times
Been thanked: 5 times

Переключение дисков по Ctrl/Alt/Shift+<-/->

Postby IgorZ » Fri 14 Nov, 2014 10:22

John Doe wrote:Пункт в меню плагинов зачем-то добавляется и для диалогов (при этом не работает).

Тупо скопировал из другого, забыв, поправить. Уберу в следующей версии, так как не критично.
John Doe wrote:А в панелях неплохо бы обрабатывать Esc для отмены.

Ctrl+Esc и Alt+Esc обрабатывает сама Windows. Так что увы. Есть Home, возвращающий курсор на исходную позицию - чем не устраивает?
John Doe wrote:И я вообще не очень понимаю какой сценарий применения при вызове из меню плагинов.
Какие преимущества перед AltF1/F2?

Добавлял ради настроек, заодно и это сделал.

User avatar
John Doe
Бюрократ
Posts: 11029
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 9 times
Been thanked: 61 times

Переключение дисков по Ctrl/Alt/Shift+<-/->

Postby John Doe » Fri 14 Nov, 2014 10:29

IgorZ wrote:Source of the post Ctrl+Esc и Alt+Esc обрабатывает сама Windows. Так что увы
XKeys позволяет забрать у Windows эту привилегию.
Но при вызове из меню плагинов я не удерживаю ни Alt ни Ctrl, поэтому сейчас речь о просто Esc.
(и что за странный эффект при нажатии Esc Enter)

IgorZ
Posts: 418
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 4 times
Been thanked: 5 times

Переключение дисков по Ctrl/Alt/Shift+<-/->

Postby IgorZ » Fri 14 Nov, 2014 10:43

John Doe wrote:
IgorZ wrote:Source of the post Ctrl+Esc и Alt+Esc обрабатывает сама Windows. Так что увы
XKeys позволяет забрать у Windows эту привилегию.

Не пользуюсь им, так что даже забыл, что такой существует.
John Doe wrote:Но при вызове из меню плагинов я не удерживаю ни Alt ни Ctrl, поэтому сейчас речь о просто Esc.

Странно. Для вызова из меню обработка Esc сделана и работает. Только что ещё раз проверил.
John Doe wrote:(и что за странный эффект при нажатии Esc Enter)

Какой именно эффект? Подробнее, пожалуйста.

User avatar
John Doe
Бюрократ
Posts: 11029
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 9 times
Been thanked: 61 times

Переключение дисков по Ctrl/Alt/Shift+<-/->

Postby John Doe » Fri 14 Nov, 2014 10:56

IgorZ wrote:Source of the post Странно. Для вызова из меню обработка Esc сделана и работает. Только что ещё раз проверил.

Добавьте в условие такой макрос:

Code: Select all

Macro {
  area="Shell"; key="Esc";
  action=function()
    Keys "CtrlO"
  end;
}


Update: John Doe @ Добавление пунктов в меню плагинов

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

Переключение дисков по Ctrl/Alt/Shift+<-/->

Postby HaRT » Fri 14 Nov, 2014 13:09

IgorZ wrote:Source of the post люди редактируют скрипт, отключая Ctrl/стрелки, чтобы они не мешали изменять размер панелей Far-а. Для тех, кто до сих пор не знает, подсказываю: для этого можно использовать стрелки на цифровой клавиатуре
У меня, например, в „лучшие“ времена было настроено, чтобы стрелки цифровой клавиатуры задвигали панели в указанном направлении до упора (а обычные — штатно, на одну позицию). Т.ч. некоторая актуальность в упоминаемых правках всё же имеется.
Фар есть инструмент, а не нянька. © 2009 DrKnS

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

Переключение дисков по Ctrl/Alt/Shift+<-/->

Postby sToLp » Sat 15 Nov, 2014 08:01


IgorZ wrote:Версия 3.0.5 - Выбор символа плагина: при нажатии клавиш и комбинаций с длинными названиями (Ctrl, AltQ, etc) возникала ошибка. Исправлено.
Спасибо!

IgorZ
Posts: 418
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 4 times
Been thanked: 5 times

Переключение дисков по Ctrl/Alt/Shift+<-/->

Postby IgorZ » Mon 29 Dec, 2014 11:45

Перед Новым Годом привожу выкладки в порядок.
Версия 3.0.6 - Esc - отмена выбора диска, Enter - переход на диск. Для нормального использования под Windows необходимо сочетать с XKeys или каким-то аналогом.

User avatar
John Doe
Бюрократ
Posts: 11029
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 9 times
Been thanked: 61 times

Переключение дисков по Ctrl/Alt/Shift+<-/->

Postby John Doe » Sun 01 Feb, 2015 22:31

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

Может попробовать вместо этого загружать плагины посредством FAR API, а далее GetModuleHandle + GetProcAddress?

Edit
John Doe wrote:Source of the post загружать плагины посредством FAR API
Накладно это по ресурсам, и первая загрузка естественно тормозит...

User avatar
John Doe
Бюрократ
Posts: 11029
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 9 times
Been thanked: 61 times

Переключение дисков по Ctrl/Alt/Shift+<-/->

Postby John Doe » Tue 03 Mar, 2015 08:27

Вот такой код стабильно вызывает падение какого-либо плагина:

User avatar
John Doe
Бюрократ
Posts: 11029
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 9 times
Been thanked: 61 times

Переключение дисков по Ctrl/Alt/Shift+<-/->

Postby John Doe » Tue 03 Mar, 2015 09:27

Вот минимальный код для воспроизведения:

Code: Select all

local ffi = require"ffi"
local plugin = far.GetPlugins()[1]
local name = far.GetPluginInformation(plugin).ModuleName
ffi.load(name)
far.ForcedLoadPlugin("PLT_PATH",name)
collectgarbage()
far.GetPluginInformation(plugin)


Минимальный фикс: собрать мусор до реальной загрузки плагина фаром:

Code: Select all

local ffi = require"ffi"
local plugin = far.GetPlugins()[1]
local name = far.GetPluginInformation(plugin).ModuleName
ffi.load(name)
collectgarbage()
far.ForcedLoadPlugin("PLT_PATH",name)
far.GetPluginInformation(plugin)

Или же честно использовать LoadLibrary+GetProcAddress+FreeLibrary, как и рекомендовалось изначально.

Update: PluginsControl

IgorZ
Posts: 418
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 4 times
Been thanked: 5 times

Переключение дисков по Ctrl/Alt/Shift+<-/->

Postby IgorZ » Fri 29 May, 2015 07:31

Правка всё ещё требуется, или уже не актуальна в связи с исправлениями в Far-е?

User avatar
John Doe
Бюрократ
Posts: 11029
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 9 times
Been thanked: 61 times

Переключение дисков по Ctrl/Alt/Shift+<-/->

Postby John Doe » Fri 29 May, 2015 09:10

Да, в фаре исправлено.

Но в скрипте я бы тоже кое-что изменил: сейчас все плагины анализируются в момент открытия настроек.
А рациональнее было бы это делать только при нажатии [ Processed plugins ]

IgorZ
Posts: 418
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 4 times
Been thanked: 5 times

Переключение дисков по Ctrl/Alt/Shift+<-/->

Postby IgorZ » Fri 11 Dec, 2015 06:24

Версия 3.0.7 - Рефакторинг работы с плагинами. Мелкие правки.

John Doe wrote:Да, в фаре исправлено.

Но в скрипте я бы тоже кое-что изменил: сейчас все плагины анализируются в момент открытия настроек.
А рациональнее было бы это делать только при нажатии [ Processed plugins ]

Таки сделал. И выгрузку плагинов (спасибо за образец), и перенёс в обработчик [ Processed plugins ].

User avatar
Mauro72
Posts: 206
Joined: Wed 11 Aug, 2010 00:23
Location: Rosario, Argentina
Been thanked: 6 times

Переключение дисков по Ctrl/Alt/Shift+<-/->

Postby Mauro72 » Wed 16 Dec, 2015 20:26

IgorZ,
- May be a blank space between drives [C D E F..]? Highlighted the current drive in uppercase, not lowercase.
- And a option to show always the drives in two panels?
Something like this:

Thanks!

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

Переключение дисков по Ctrl/Alt/Shift+<-/->

Postby HaRT » Wed 16 Dec, 2015 20:40

Mauro72 wrote:Source of the post Highlighted the current drive in uppercase, not lowercase
How is it now? If [CDEFGhIJKLNS], then it resembles a row of physical buttons, one of them pressed — quite intuitive…
Color highlight would be helpful anyway.
Фар есть инструмент, а не нянька. © 2009 DrKnS

IgorZ
Posts: 418
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 4 times
Been thanked: 5 times

Переключение дисков по Ctrl/Alt/Shift+<-/->

Postby IgorZ » Thu 17 Dec, 2015 07:47

Mauro72 wrote:May be a blank space between drives [C D E F..]?
Only if as option.
Mauro72 wrote:Highlighted the current drive in uppercase, not lowercase.
Similarly.
Mauro72 wrote:And a option to show always the drives in two panels?
Please, more detail.


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

Who is online

Users browsing this forum: No registered users and 3 guests