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

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

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

Post by SUSim » Wed 19 May, 2010 19:15

чтобы не захламлять историю я использую два подхода:
1 в меню пользователя у меня есть пункт !??! и я команды на выполнения принчу туда :)
2 после выполнения команды из макроса, я тем же макросом удаляю последнюю строку истории...
SimSU ··· ·· -- ··· ··-

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

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

Post by John Doe » Wed 19 May, 2010 19:56

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

Я склонен поддержать автора изначальной темы:
Zzzz wrote:Добавьте пожалуйста в макросы функцию отключения истории команд, эдитбоксов... - чтоб не захламлять.
Т.е. неплохо бы иметь макрофукцию, управляющую сохранением истории (в разрезе TechInfo #79).
Или хотя бы просто режим, отключающий для данного макроса все истории разом.

User avatar
SUSim
Posts: 1534
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 5 times
Been thanked: 9 times

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

Post by SUSim » Thu 20 May, 2010 04:22

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

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

ну правда не АЙС :)
SimSU ··· ·· -- ··· ··-

Smitis
Posts: 1596
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 18 times
Been thanked: 38 times

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

Post by Smitis » Thu 20 May, 2010 05:47

Очень пригодилось бы "одноразовое" отключение истории Copy/Move. Лучше всего чекбокс, который при следующей операции будет автоматически сбрасываться.
Например, переименовываю файлы макросом. Чтобы всё это не добавлялось в историю, в макросе просто устанавливается чекбокс "Не добавлять в историю".
Разум когда-нибудь победит.

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

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

Post by John Doe » Thu 20 May, 2010 09:32

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

Лучше сделать это режимом макроса, таким же как, например [x] Disable screen output.
А ещё универсальнее - макрофункцией, типа DisableHistory(Flags).

Smitis
Posts: 1596
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 18 times
Been thanked: 38 times

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

Post by Smitis » Thu 20 May, 2010 17:17

История сама по себе не имеет никакого отнашения к макросам. Поэтому такой режим макроса, по моему, сосвсем не к месту. В диалоге же, вполне уместен чекбокс. Там же, где диалогов нет, например, при выполнении команды... Ну, макрофункция, как вариант.
Разум когда-нибудь победит.


User avatar
SUSim
Posts: 1534
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 5 times
Been thanked: 9 times

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

Post by SUSim » Tue 05 Apr, 2011 17:09

Не обязательно, хотя и хорошо бы... макрос на 2 строки короче будет :)
SimSU ··· ·· -- ··· ··-

User avatar
NightRoman
Posts: 5911
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 14 times
Contact:

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

Post by NightRoman » Tue 12 Apr, 2011 15:54

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

В этом есть логика. Макрос, который реально работает с историей или производит *полезную* историю, о ней и беспокоится. Те же макросы, которым история вредна, фиолетова, или просто не хочется хламить в ней, ничего не делают (таких большинство).

AlexII
Posts: 266
Joined: Mon 10 Apr, 2006 00:53
Location: станица Григорополисская
Has thanked: 95 times
Contact:

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

Post by AlexII » Tue 12 Apr, 2011 16:39

NightRoman, как только появится реализация вызова плагинных макрофункций, затем реализация давно просимой макрофункции exec (хотя б и вышеозвученным путём) для вызова плагинов и исполнения внешних программ не из командной строки — сама нужда в функционале, описанном данным топиком, думаю, отпадёт.

User avatar
Skirda
Posts: 3474
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 4 times

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

Post by Skirda » Tue 12 Apr, 2011 16:41

NightRoman wrote:А не лучше бы было, если история была выключена по умолчанию в режиме проигрывания макроса?
Кстати, да. Было бы разумнее.
Тогда нужно будет переименовать/переделать history.disable в history.enable (с соответствующим изменением смысла битов на противоположный)
We are the Borg. You will be assimilated.
So Say We All!

User avatar
NightRoman
Posts: 5911
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 14 times
Contact:

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

Post by NightRoman » Tue 12 Apr, 2011 16:44

AlexII
Не отпадет. Всегда будут макросы, которые просто тупо эмулируют нажатия кнопок. И вызываться могут 150 раз. И засорять при этом историю безбожно, если не позаботиться. А кто будет заботиться, если это только что записанный макрос (контрол точкой) и его тут же запустили в дело 150 раз. Никто. А если бы испория была вырублена в макросах по умолчанию, все было бы ок.

AlexII
Posts: 266
Joined: Mon 10 Apr, 2006 00:53
Location: станица Григорополисская
Has thanked: 95 times
Contact:

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

Post by AlexII » Tue 12 Apr, 2011 16:49

NightRoman wrote:Всегда будут макросы, которые просто тупо эмулируют нажатия кнопок. И вызываться могут 150 раз.
Не спорю. Главное — чтоб была возможность включить историю при нужде.

User avatar
Skirda
Posts: 3474
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 4 times

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

Post by Skirda » Tue 12 Apr, 2011 16:51

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

Кстати, вот тут все время фигурирует "воспроизведения макросов", а как быть с "записью"? Я так думаю, что во время записи макроса историю тоже нужно отрубать.
Не?
We are the Borg. You will be assimilated.
So Say We All!

User avatar
NightRoman
Posts: 5911
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 14 times
Contact:

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

Post by NightRoman » Tue 12 Apr, 2011 16:55

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

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

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

User avatar
Skirda
Posts: 3474
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 4 times

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

Post by Skirda » Tue 12 Apr, 2011 17:02

NightRoman wrote:Это на какие истории будет распространяться, все? В диалогах тоже?
Здесь, правда относительно history.disable
We are the Borg. You will be assimilated.
So Say We All!

Post Reply

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