Имитация многострочного редактирования как в SciTE

Здесь выкладываются готовые к использованию макросы и скрипты.
Shmuel
Posts: 7011
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 42 times
Been thanked: 569 times

Имитация многострочного редактирования как в SciTE

Post by Shmuel »

Latest post of the previous page:

ccaid wrote: Mon 14 Jan, 2019 22:05 у меня используется макрос, который подменяет Left на CtrlS
Вы, наверное, хотели сказать, что подменяет CtrlS на Left?
ccaid wrote: Mon 14 Jan, 2019 22:05 имеет смысл обрабатывать CtrlS
Честно говоря, не уверен в этом. У меня, например, на CtrlS висит макрос, сохраняющий изменения, т.е. вызывающий F2, а на F2 висит вызов пользовательского меню. Но дело не в этом, а в том, что у данного скрипта нет возможности учесть макросную замену клавиш навигации (у вас это CtrlS->Left, а у кого-то другого может быть CtrlD->Right и т.д. и т.п.)

P.S.
Сейчас записал клавиатурный макрос, вызывающий Keys("Left") при нажатии CtrlS. И вроде всё нормально, сабжевый скрипт одинаково обрабатывает Left и CtrlS.
Last edited by Shmuel on Mon 14 Jan, 2019 22:54, edited 1 time in total.
User avatar
HaRT
Moderator
Posts: 11216
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 246 times
Been thanked: 389 times

Имитация многострочного редактирования как в SciTE

Post by HaRT »

Shmuel wrote: Mon 14 Jan, 2019 22:37 Но может быть я вас не понял?
Я тоже не вполне понял, что имелось в виду, но хотел бы заострить внимание, что в редакторе без макросов между Left и CtrlS есть одно полезное различие: Left переходит через начало строки (в конец предыдущей), а CtrlS нет. Я это использую для упрощения своих макросов перемещения/выделения, которые не вылезают за пределы строки (они у меня назначены на стрелки цифровой клавиатуры). Но на проблемы с этим в многострочным редактировании я не натыкался.
Фар есть инструмент, а не нянька. © 2009 DrKnS
ccaid
Posts: 908
Joined: Fri 12 Jun, 2009 16:04
Has thanked: 24 times
Been thanked: 6 times

Имитация многострочного редактирования как в SciTE

Post by ccaid »

Shmuel wrote: Mon 14 Jan, 2019 22:37 Вы, наверное, хотели сказать, что подменяет CtrlS на Left?
нет.
я нажимаю Left, нажатие превращается в CtrlS, перемещение курсора не переходит на конец предыдущей строки, профит.
Shmuel wrote: Mon 14 Jan, 2019 22:37 нет возможности учесть макросную замену клавиш навигации
эффект имеется без какой-либо макросной замены — если нажимать штатную комбинацию редактора CtrlS.
Last edited by ccaid on Tue 15 Jan, 2019 05:37, edited 1 time in total.
Фар делают добрые люди
Shmuel
Posts: 7011
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 42 times
Been thanked: 569 times

Имитация многострочного редактирования как в SciTE

Post by Shmuel »

ccaid, теперь понятно, это у меня пробел в матчасти по поводу CtrlS в редакторе, я не знал, что это штатная команда.
Постараюсь сегодня выложить новую версию (когда будет готова, естественно).
Shmuel
Posts: 7011
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 42 times
Been thanked: 569 times

Имитация многострочного редактирования как в SciTE

Post by Shmuel »

Новая версия выложена в начальном сообщении темы.
User avatar
John Doe
Бюрократ
Posts: 14263
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 80 times
Been thanked: 468 times
Contact:

Имитация многострочного редактирования как в SciTE

Post by John Doe »

При отключенной опции OptCursorMoveResetsBlock Left/Right двигают блок.
Заметил в этом режиме одну шороховатость: после того как вручную выделить вертикальный блок - курсор может оказаться за его пределами (справа).
Если после этого нажать Right - блок переместиться на одну позицию дальше чем ожидается.
Аналогично и с блоком нулевой длины.
https://t.me/FarManager — Telegram чат
Shmuel
Posts: 7011
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 42 times
Been thanked: 569 times

Имитация многострочного редактирования как в SciTE

Post by Shmuel »

John Doe wrote: Sun 04 Jun, 2023 23:47 Если после этого нажать Right - блок переместиться на одну позицию дальше чем ожидается.
Да, есть там мелкие шероховатости.
Кроме того, поскольку у меня опции никогда не меняются, то поведение при других значениях опций я не отслеживаю.
Но честно говоря, меня этот скрипт устраивает как есть, и постоянно им пользуюсь как в Far3, так и в far2m.
Shmuel
Posts: 7011
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 42 times
Been thanked: 569 times

Имитация многострочного редактирования как в SciTE

Post by Shmuel »

Залил новую версию. Только рефакторинг + работает без изменений в Far3 и far2m.
User avatar
HaRT
Moderator
Posts: 11216
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 246 times
Been thanked: 389 times

Имитация многострочного редактирования как в SciTE

Post by HaRT »

Shmuel wrote: Sat 29 Jul, 2023 06:17 Залил новую версию
Я в этой версии запилил для «многострочного курсора» функциональность Smart Home/End. Выложен ли скрипт в какой-то репозиторий, чтобы мне открыть там PR/MR? (В репе far2m я его не нашёл.)
Shmuel
Posts: 7011
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 42 times
Been thanked: 569 times

Имитация многострочного редактирования как в SciTE

Post by Shmuel »

HaRT wrote: Thu 09 May, 2024 02:39 В репе far2m я его не нашёл
Есть ещё репа luafar2m. Скрипт находится в ней, в папке Macros/scripts/Editor/events.
User avatar
HaRT
Moderator
Posts: 11216
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 246 times
Been thanked: 389 times

Имитация многострочного редактирования как в SciTE

Post by HaRT »

Shmuel wrote: Thu 09 May, 2024 05:31 Есть ещё репа luafar2m. Скрипт находится в ней, в папке Macros/scripts/Editor/events.
Вот: Add Smart Home/End for the “multiline caret”. Там основная (нехитрая) логика в конце, а по остальному тексту просто небольшой «улучшайзинг».
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
HaRT
Moderator
Posts: 11216
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 246 times
Been thanked: 389 times

Имитация многострочного редактирования как в SciTE

Post by HaRT »

Shmuel, я добавил ссылку на свежеопубликованную версию в заглавное сообщение Темы. Надеюсь, вы не против.

Для целостности сообщения в интересах заглянувших одним глазком:
HaRT wrote: Thu 09 May, 2024 02:39 Я в этой версии запилил для «многострочного курсора» функциональность Smart Home/End.
Фар есть инструмент, а не нянька. © 2009 DrKnS
DENgerous
Posts: 12
Joined: Fri 09 Nov, 2007 13:45

Имитация многострочного редактирования как в SciTE

Post by DENgerous »

Спасибо за отличный скрипт! Для будущего - ссылка на гитхаб у меня не работает (корпоративный фаервол), но scite_like_20230729.7z в начале темы - вполне себе. Как установить: копируем scite_like.lua в %FARPROFILE%\Macros\scripts и перезапускаем (?) FAR.

Для таких же как я, кому зарубили github на работе новейшая версия из https://github.com/shmuz/luafar2m/blob/ ... e_like.lua в аттаче
Attachments
scite_like.lua
(7.12 KiB) Downloaded 55 times
Last edited by DENgerous on Tue 15 Apr, 2025 10:00, edited 2 times in total.
Shmuel
Posts: 7011
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 42 times
Been thanked: 569 times

Имитация многострочного редактирования как в SciTE

Post by Shmuel »

DENgerous wrote: Tue 15 Apr, 2025 09:47 и перезапускаем (?) FAR.
Вместо перезапуска Фара можно выполнить lm:load или macro:load.
Post Reply

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