description="\1Goto...\n^QB Go to start of block";
HaRT wrote: А как-нибудь более самостоятельно?
Предлагайте.
HaRT wrote: а в чём получается различие между здешней функциональностью на CtrlU и на CtrlK-H?
Ctrl-U сейчас восстанавливает любое выделение.
CtrlK-H восстанавливает только то, что было погашено с помощью CtrlK-H, или запомнено ранее при использовании прочих макросов, устанавливающих блоки (а именно CtrlK-B/K, и CtrlK-N).
╔═════════════════════════ CtrlQ ═════════════════════════╗
║ ^Q -------- Navigation -------- ║
║ ^QB Go to start of block ║
║ ^QK Go to end of block ║
║ ^QS Go to start of line ║
║ ^QD Go to end of line ║
║ ^QE Go to top of window ║
║ ^QX Go to bottom of window ║
║ ^QR Go to start of file ║
║ ^QC Go to end of file ║
║ ^QP Go to last position ║
║ ^Q -------- More Navigation -------- ║
║ ^Q-n Find place marker ║
║ ^Q[ Go to matching/backward pair [Brackets plugin] ║
║ ^Q] Go to matching/forward pair [Brackets plugin] ║
║ ^Q{ Select to matching/backward pair [Brackets plugin] ║
║ ^Q} Select to matching/forward pair [Brackets plugin] ║
║ ^QT Pos current line to the top of the window ║
║ ^QU Pos current line to the bottom of the window ║
║ ^QF Find... ║
║ ^QA Find & replace... ║
║ ^Q -------- Modification -------- ║
║ ^Q-DEL Delete to start of Line ║
║ ^QY Delete to end of line ║
║ ^QL Restore line ║
╚═════════════════════════════════════════════════════════╝
local group_separators = true
local Group do
local default = {area="Editor",key="CtrlK-",action=function()end}
Group = not group_separators and default.action or function(t)
default.description = t[1] or "\1"; return Macro(default)
end
end
Не могу похвастаться полным пониманием предлагаемого решения.
Поскольку у меня этих групп всего 3+2, у себя пока оставлю как есть. Но для более общего решения, похоже, предлагаемый Вами подход будет действительно лучше.
John Doe wrote: Для непостоянных блоков кнопки Left/Right перемещают курсор между позициями начала и конца выделения (предлагалось тут)
Выяснилось, что эта функциональность мешает двигать блок (что и неудивительно).
Есть ли какой-то простой способ заставить оба макроса (в смысле, здешний и тамошний) выполниться в предопределённом порядке?
Shmuel wrote: Вообще-то эти макросы отношения к Turbo вроде не имеют, они как бы сами по себе.
Так и есть.
HaRT wrote: Выяснилось, что эта функциональность мешает двигать блок (что и неудивительно).
Не знаю как именно предполагается двигать блок, как-нибудь попробую.
Эти 2 макроса точно должны функционировать одновременно? Может быть нужен condition?
Создаю блочное выделение (непостоянное); прыгаю куда-то — оно сбрасывается (нормально); пытаюсь восстановить по ^KP — восстанавливается уже поточное выделение (с теми же началом и концом). При этом, например, Editor_SelectingEx работает нормально. Far Manager v3.0 build 4457 x86 (2015-11-18), без прочих скриптов (оставлены только *Turbo* и macroEx.lua).
По всей видимости недоделано: сейчас тип блока нигде не сохраняется, вместо этого используется "глобальное" состояние (которое вроде как можно изменить по ^KN)
HaRT wrote: Пожелание: сохранять и восстанавливать.
Логично. Но не знаю когда доберусь до фара.
HaRT wrote: Насколько я вижу, это переключает тип текущего выделения. При отсутствии такового никакого влияния не вижу.
По и идее при отсутствии выделения эта комбинация меняет глобальное состояние, что должно быть видно, если после этого попытаться восстановить предыдущее выделение.
Это по коду. По факту может и не так, проверить пока не на чем.
Я заметил, что если выполнить ^KC (дублировать блок) при отсутствии выделения, то дубликат текущей строки допишется в её конец, а каретка скакнёт в её начало. Хотелось бы, чтобы вместо этого копия строки добавлялась перед текущей строкой (единообразно тому, что, например, при отсутствии выделения по CtrlIns копируется вся текущая строка вместе с EOL), а каретка никуда бы не смещалась.
Обнаружилось, что в редакторе не работает голый CtrlO — при том, что CtrlK и CtrlQ работают. (Проверял без лишних плагинов и макрофайлов.)
Пришлось подставить
При установленном Ctrl-K-blocks.lua и попытке в редакторе выделить текст (стрелками, мышью или по CtrlA) Far последней ночной сборки 4674 обеих разрядностей, работающий по Win10x64entRu, валится. В 4672 этого не наблюдалось.