Как не захламлять историю макросами

Здесь обсуждается всё, что касается макросов.
Post Reply
User avatar
SUSim
Posts: 1636
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 9 times
Been thanked: 26 times

Как не захламлять историю макросами

Post by SUSim »

чтобы не захламлять историю я использую два подхода:
1 в меню пользователя у меня есть пункт !??! и я команды на выполнения принчу туда :)
2 после выполнения команды из макроса, я тем же макросом удаляю последнюю строку истории...
SimSU ··· ·· -- ··· ··-
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Re: Как не захламлять историю макросами

Post by John Doe »

Допустим, историю команд вы исправили. Но ещё ведь есть история открытия редактора/вьювера, история смены папок...

Я склонен поддержать автора изначальной темы:
Zzzz wrote:Добавьте пожалуйста в макросы функцию отключения истории команд, эдитбоксов... - чтоб не захламлять.
Т.е. неплохо бы иметь макрофукцию, управляющую сохранением истории (в разрезе TechInfo #79).
Или хотя бы просто режим, отключающий для данного макроса все истории разом.
User avatar
SUSim
Posts: 1636
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 9 times
Been thanked: 26 times

Re: Как не захламлять историю макросами

Post by SUSim »

эти истории я чищу например для редактора:
ShiftF2 CtrlDown $IF (ItemCount > 1) ShiftDel Esc $Else ShiftDel $End Esc %comment="Чистим историю.";

AltF11 ShiftDel Esc %comment="Чистим историю.";

ну правда не АЙС :)
SimSU ··· ·· -- ··· ··-
User avatar
Smitis
Posts: 1709
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 23 times
Been thanked: 55 times

Re: Как не захламлять историю макросами

Post by Smitis »

Очень пригодилось бы "одноразовое" отключение истории Copy/Move. Лучше всего чекбокс, который при следующей операции будет автоматически сбрасываться.
Например, переименовываю файлы макросом. Чтобы всё это не добавлялось в историю, в макросе просто устанавливается чекбокс "Не добавлять в историю".
Разум когда-нибудь победит.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Re: Как не захламлять историю макросами

Post by John Doe »

Чекбокс только в диалогах Copy/Move?
Не, это как-то очень половинчато, и вообще ...

Лучше сделать это режимом макроса, таким же как, например [x] Disable screen output.
А ещё универсальнее - макрофункцией, типа DisableHistory(Flags).
https://t.me/FarManager — Telegram чат
User avatar
Smitis
Posts: 1709
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 23 times
Been thanked: 55 times

Re: Как не захламлять историю макросами

Post by Smitis »

История сама по себе не имеет никакого отнашения к макросам. Поэтому такой режим макроса, по моему, сосвсем не к месту. В диалоге же, вполне уместен чекбокс. Там же, где диалогов нет, например, при выполнении команды... Ну, макрофункция, как вариант.
Разум когда-нибудь победит.
User avatar
SUSim
Posts: 1636
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 9 times
Been thanked: 26 times

Re: Как не захламлять историю макросами

Post by SUSim »

Не обязательно, хотя и хорошо бы... макрос на 2 строки короче будет :)
SimSU ··· ·· -- ··· ··-
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: Как не захламлять историю макросами

Post by NightRoman »

А не лучше бы было, если история была выключена по умолчанию в режиме проигрывания макроса? Кажется, почти всегда история бесполезна, когда играет макрос. И только для редких случаев, когда она реально нужна, предоставить функу, которая это дело включает.

В этом есть логика. Макрос, который реально работает с историей или производит *полезную* историю, о ней и беспокоится. Те же макросы, которым история вредна, фиолетова, или просто не хочется хламить в ней, ничего не делают (таких большинство).
AlexII
Posts: 270
Joined: Mon 10 Apr, 2006 00:53
Location: станица Григорополисская
Has thanked: 147 times
Contact:

Re: Как не захламлять историю макросами

Post by AlexII »

NightRoman, как только появится реализация вызова плагинных макрофункций, затем реализация давно просимой макрофункции exec (хотя б и вышеозвученным путём) для вызова плагинов и исполнения внешних программ не из командной строки — сама нужда в функционале, описанном данным топиком, думаю, отпадёт.
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: Как не захламлять историю макросами

Post by Skirda »

NightRoman wrote:А не лучше бы было, если история была выключена по умолчанию в режиме проигрывания макроса?
Кстати, да. Было бы разумнее.
Тогда нужно будет переименовать/переделать history.disable в history.enable (с соответствующим изменением смысла битов на противоположный)
We are the Borg. You will be assimilated.
So Say We All!
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: Как не захламлять историю макросами

Post by NightRoman »

AlexII
Не отпадет. Всегда будут макросы, которые просто тупо эмулируют нажатия кнопок. И вызываться могут 150 раз. И засорять при этом историю безбожно, если не позаботиться. А кто будет заботиться, если это только что записанный макрос (контрол точкой) и его тут же запустили в дело 150 раз. Никто. А если бы испория была вырублена в макросах по умолчанию, все было бы ок.
AlexII
Posts: 270
Joined: Mon 10 Apr, 2006 00:53
Location: станица Григорополисская
Has thanked: 147 times
Contact:

Re: Как не захламлять историю макросами

Post by AlexII »

NightRoman wrote:Всегда будут макросы, которые просто тупо эмулируют нажатия кнопок. И вызываться могут 150 раз.
Не спорю. Главное — чтоб была возможность включить историю при нужде.
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: Как не захламлять историю макросами

Post by Skirda »

В общем то переделка - делов на 2 минуты (уже готово).
Если нет веских соображений против утверждения "истории всегда задисаблены во время проигрывания макроса", то завтра закоммичу изменения "history.disable() переименована в history.enable(), истории по умолчанию для воспроизведения макросов отключены"...

Кстати, вот тут все время фигурирует "воспроизведения макросов", а как быть с "записью"? Я так думаю, что во время записи макроса историю тоже нужно отрубать.
Не?
We are the Borg. You will be assimilated.
So Say We All!
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: Как не захламлять историю макросами

Post by NightRoman »

Skirda
Гуд. Афигеть как все просто получилось. :)

Я не читал тред внимательно. Это на какие истории будет распространяться, все? В диалогах тоже?

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

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