В 2008 иногда не успевают обрабатываться макросы

Здесь можно сообщить о найденных багах в Far.
Post Reply
Roy
Posts: 51
Joined: Sat 02 Jul, 2005 00:08

В 2008 иногда не успевают обрабатываться макросы

Post by Roy »

Имеем 2 макроса - перемещение в редакторе строчного блока вверх\вниз по тексту:

[HKEY_CURRENT_USER\Software\Far\KeyMacros\Editor\AltUp]
"Sequence"="CtrlIns CtrlD AltShiftF9 AltG Add CtrlEnter Up Home ShiftIns Up AltShiftF9 AltG Subtract CtrlEnter"
"DisableOutput"=dword:00000001
@="Block: Move Up"

[HKEY_CURRENT_USER\Software\Far\KeyMacros\Editor\AltDown]
"Sequence"="CtrlIns CtrlD AltShiftF9 AltG Add CtrlEnter End Enter Home ShiftIns CtrlY Up AltShiftF9 AltG Subtract CtrlEnter"
"DisableOutput"=dword:00000001
@="Block: Move Down"

При перемещение блока на большое растояние в какой-то момент макрос не отрабатывает - теряем содержимое блока.
А в 1812 такого нет. :)
exp_1
Posts: 52
Joined: Fri 01 Jul, 2005 08:27

Post by exp_1 »

Я не раз сталкивался с такой ситуацией, когда при помощи макроса переношу с переформатированием данные из одного текстового файла в другой (т.е. макрос содержит Ctrl+Tab), то несколько его использований подряд работает прекрасно, а на очередном возникает табличка типа такой:

Code: Select all

г======= Удаление =======
¦ Вы хотите удалить файл ¦
¦        Far.exe         ¦
¦   Удалить  Отменить    ¦
L========================-
Хорошо хоть макрос при этом прекращал свою деятельностью.

Я не пытался в этом разобраться, но грешу на PIV с его HT.
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: В 2008 иногда не успевают обрабатываться макросы

Post by Skirda »

Roy wrote:Имеем 2 макроса - перемещение в редакторе строчного блока вверх\вниз по тексту:
Хорошие макросы :-)
В Энц. в раздел примеров могу занести?
Roy wrote:При перемещение блока на большое растояние в какой-то момент макрос не отрабатывает - теряем содержимое блока.
А в 1812 такого нет. :)
Что-то не получается "потерять".
Без плагинов повторяется (far /p)?
Roy
Posts: 51
Joined: Sat 02 Jul, 2005 00:08

Post by Roy »

Занеси... Только тогда уж для полноты комплекта:

[HKEY_CURRENT_USER\Software\Far\KeyMacros\Editor\AltLeft]
"Sequence"="AltU"
"DisableOutput"=dword:00000001
@="Block: Move Left"

[HKEY_CURRENT_USER\Software\Far\KeyMacros\Editor\AltRight]
"Sequence"="AltI"
"DisableOutput"=dword:00000001
@="Block: Move Right"

и альтернатива для перемения вниз - не ниже EOF (правда не помню, работал ли)

[HKEY_CURRENT_USER\Software\Far\KeyMacros\Editor\AltDown]
"Sequence"="CtrlIns CtrlD AltShiftF9 AltG Add CtrlEnter Down Home ShiftIns Up AltShiftF9 AltG Subtract CtrlEnter"
"DisableOutput"=dword:00000001
@="Block: Move Down (EOF)"
Roy
Posts: 51
Joined: Sat 02 Jul, 2005 00:08

Post by Roy »

Без плагинов - тоже самое.
Проявляется когда как, то через 20 строк, то через 200.
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: В 2008 иногда не успевают обрабатываться макросы

Post by Skirda »

Roy wrote:Имеем 2 макроса - перемещение в редакторе строчного блока вверх\вниз по тексту:
Я бы уточнил твои макросы :-)

Code: Select all

REGEDIT4

[HKEY_CURRENT_USER\Software\Far\KeyMacros\Editor\AltUp]
"Sequence"="$IClip CtrlX AltShiftF9 $if (Env("FARLANG") == "Russian") AltG $else AltP $endif Add CtrlEnter Up CtrlV AltShiftF9 $if (Env("FARLANG") == "Russian") AltG $else AltP $endif Subtract CtrlEnter"
"DisableOutput"=dword:00000001
@="Block: Move Up"

[HKEY_CURRENT_USER\Software\Far\KeyMacros\Editor\AltDown]
"Sequence"="$IClip CtrlX AltShiftF9 $if (Env("FARLANG") == "Russian") AltG $else AltP $endif Add CtrlEnter Down CtrlV AltShiftF9 $if (Env("FARLANG") == "Russian") AltG $else AltP $endif Subtract CtrlEnter"
"DisableOutput"=dword:00000001
@="Block: Move Down"
Здесь $IClip не будет портить виндовый клипборд.
Roy
Posts: 51
Joined: Sat 02 Jul, 2005 00:08

Post by Roy »

Про $IClip я уже тоже подумывал :)
А с FARLANG - проще нельзя?.. Вроде ж была какая переменная - как воспринимать хоткеи в диалога? Или мне кажется...
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Post by Skirda »

Roy wrote:А с FARLANG - проще нельзя?..
Можно.

Code: Select all

[HKEY_CURRENT_USER\Software\Far\KeyMacros\Editor\AltUp]
"Sequence"="$IClip CtrlX %a=Editor.Set(2,1); Up CtrlV %a=Editor.Set(2,%a);"
"DisableOutput"=dword:00000001
@="Block: Move Up"

[HKEY_CURRENT_USER\Software\Far\KeyMacros\Editor\AltDown]
"Sequence"="$IClip CtrlX %a=Editor.Set(2,1); Down CtrlV %a=Editor.Set(2,%a);"
"DisableOutput"=dword:00000001
@="Block: Move Down"
... но чуть позже :-)
Roy wrote:Вроде ж была какая переменная - как воспринимать хоткеи в диалога? Или мне кажется...
Хмм... даже если...

Code: Select all

$if (checkhotkey("P"))...
все равно выше лучше ;-)
Roy
Posts: 51
Joined: Sat 02 Jul, 2005 00:08

Post by Roy »

Я имел ввиду видимо TechInfo #21. Но оно оказалось несколько не то :)

Кстати, сдается мне, правильней для диалоговых хоткеев во время выполнения\записи макроса всегда считать, что язык английский.
Так макросы от текущего языка зависеть не будут.
Kildor
Posts: 1515
Joined: Wed 16 Mar, 2005 06:26
Location: Новосибирск
Been thanked: 1 time
Contact:

Post by Kildor »

Согласен.
В идеале бы ещё F11 » хоткей, чтоб брался английский символ, а не русский, ибо очень напрягает…
Ты мне не выкай!
«ФарФорум не для пользователей!»
Upd:
P.S. Я просто поддерживаю беседу.» © Народ.

xmpp:kildor@jabber.ru
Post Reply

Return to “Глюки и баги”