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

Здесь обсуждается всё, что касается макросов.
Shmuel
Posts: 5164
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 15 times
Been thanked: 145 times

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

Post by Shmuel » Wed 13 Jan, 2016 19:18

Latest post of the previous page:

HaRT wrote: Похоже, что первое — опечатка. А во втором, похоже, просто лишняя строка, т.к. text вроде бы не изменялся.
Да, опечатка, и в то же время - баг. Большое спасибо, надо будет пользоваться luacheck'ом более регулярно.
Второе посмотрю попозже, но это не баг.

User avatar
HaRT
Moderator
Posts: 8048
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 67 times
Been thanked: 100 times

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

Post by HaRT » Wed 13 Jan, 2016 23:33

Yegor wrote: реальный юзкейс
Вот как раз из моей сегодняшней работы: (хвосты строк выкинуты). Надо заменить тут каждый GUARD( connect на QCONNECT. Просто выделяю (вертикальный) блок из 4 GUARD(  и нажимаю Q, затем выделяю (вертикальный же) блок из 4 connect и перевожу в верхний регистр. Готово!
PS
На самом деле всё это я проделал в Студии, но могло получиться, что оно было бы в Фаре.
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
Wave
Posts: 1716
Joined: Thu 04 Aug, 2005 18:47
Location: Харьков, Украина
Has thanked: 2 times
Been thanked: 9 times
Contact:

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

Post by Wave » Thu 14 Jan, 2016 10:44

Yegor wrote:Вижу что востребована, вот и хочу пример, сам сижу в VS 80% времени, но не припомню чтобы понадобилась эта фича.
При редактировании html’я очень часто используется. Всякие там
Структурку такую набросал — а потом сообразил, что надо всем ссылкам проставить класс или внутрь ссылок запилить span, или ещё что-нибудь в этом роде — вот и. Посмотри любой хороший видеоурок по вёрстке, где автор урока использует Sublime Text — с вероятностью 75% мелькнёт и подобное многострочное редактирование.

Да мало и ли? Регулярно в местах, где есть две-три-больше строки с совпадающей структурой (обычно это исходники и даже не важно, на каком языке) — случается необходимость эти две-три строки подправить. Но опять же, хозяин барин.
Last edited by Wave on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: [spoiler]
Пользуюсь ФАРом больше 15 лет © собирательный.

Yegor
Posts: 847
Joined: Mon 04 Apr, 2005 13:41
Location: Kharkov, Ukraine
Has thanked: 2 times
Been thanked: 7 times

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

Post by Yegor » Thu 14 Jan, 2016 11:54

Всем спасибо, вопрос закрыт.
Мы не можем ждать милостей от Фара, взять их у него — наша задача! (C) Мичурин

User avatar
Wave
Posts: 1716
Joined: Thu 04 Aug, 2005 18:47
Location: Харьков, Украина
Has thanked: 2 times
Been thanked: 9 times
Contact:

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

Post by Wave » Tue 19 Jan, 2016 20:24

Вот ещё попался под руку пример, как люди множественные курсоры используют. Конечно, в саблайме эта фишка гораздо функциональней…
Пользуюсь ФАРом больше 15 лет © собирательный.

Yegor
Posts: 847
Joined: Mon 04 Apr, 2005 13:41
Location: Kharkov, Ukraine
Has thanked: 2 times
Been thanked: 7 times

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

Post by Yegor » Tue 19 Jan, 2016 20:34

Wave, для этого есть рефакторинг тулзы :)
Мы не можем ждать милостей от Фара, взять их у него — наша задача! (C) Мичурин

User avatar
Wave
Posts: 1716
Joined: Thu 04 Aug, 2005 18:47
Location: Харьков, Украина
Has thanked: 2 times
Been thanked: 9 times
Contact:

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

Post by Wave » Tue 19 Jan, 2016 21:00

Рефакторинг-тулзы — они в больших и тяжёлых IDE. Иногда проще воспользоваться быстрым привычным универсальным редактором, в котором есть такая универсальная фича.

И да, гифку я взял из статьи, в которой говорится: лучшая IDE для php — это PHPStorm! Но она, сцуко, тяжёлая и это перевешивает её многочисленные достоинства. Давайте попробуем реализовать её фичи в саблайме…
Пользуюсь ФАРом больше 15 лет © собирательный.

Shmuel
Posts: 5164
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 15 times
Been thanked: 145 times

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

Post by Shmuel » Wed 20 Jan, 2016 12:10

Версия из последнего спойлера помещена в шапку.

User avatar
HaRT
Moderator
Posts: 8048
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 67 times
Been thanked: 100 times

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

Post by HaRT » Wed 20 Jan, 2016 13:15

Вчера опять наткнулся на отсутствие до-выделения по словам:
HaRT wrote:Пожелание: чтобы при нажатии [b]CtrlAltShiftLeft[/b]/[b]CtrlAltShiftRight[/b] происходило перемещение активной границы блока к соответствующей (влево/вправо) границе слова в текущей строке — аналогично тому, что происходит с поточным выделением по [b]CtrlShiftLeft[/b]/[b]CtrlShiftRight[/b].
Оправданны ли мои надежды на реализацию этой фичи?
Фар есть инструмент, а не нянька. © 2009 DrKnS

Shmuel
Posts: 5164
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 15 times
Been thanked: 145 times

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

Post by Shmuel » Wed 20 Jan, 2016 13:39

HaRT wrote: Оправданны ли мои надежды на реализацию этой фичи?
Сделать, наверное, можно, только вот эта фича она ведь никак не связана с сабжем (так же как и уже реализованная фича OptReplaceBlock). То-есть получается как бы этот скрипт будет являться набором не очень-то связанных фич.

User avatar
HaRT
Moderator
Posts: 8048
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 67 times
Been thanked: 100 times

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

Post by HaRT » Wed 20 Jan, 2016 14:11

Shmuel wrote: То-есть получается как бы этот скрипт будет являться набором не очень-то связанных фич.
Так может „не профильные“ фичи выделить в отдельный скрипт? Для меня разделить обсуждение не составит труда.
Просто фичи-то очень взаимосвязанные, т.к. удобство „основных“ сильно зависит от наличия „вспомогательных“.
Фар есть инструмент, а не нянька. © 2009 DrKnS

Shmuel
Posts: 5164
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 15 times
Been thanked: 145 times

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

Post by Shmuel » Wed 20 Jan, 2016 15:50

Я сейчас попробовал на вертикальном блоке CtrlAltLeft и CtrlAltRight - вроде Фар и сам делает то, что вы хотите. :)

User avatar
HaRT
Moderator
Posts: 8048
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 67 times
Been thanked: 100 times

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

Post by HaRT » Wed 20 Jan, 2016 16:26

Shmuel wrote: CtrlAltLeft и CtrlAltRight - вроде Фар и сам
О, точно, спасибо!
Фар есть инструмент, а не нянька. © 2009 DrKnS

vasily123
Posts: 16
Joined: Tue 22 Apr, 2014 09:03
Has thanked: 2 times
Been thanked: 1 time

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

Post by vasily123 » Mon 14 Mar, 2016 17:02

Shmuel, спасибо огромное за этот скрипт! Еще бы его в стандартный дистрибутив :)

User avatar
Wave
Posts: 1716
Joined: Thu 04 Aug, 2005 18:47
Location: Харьков, Украина
Has thanked: 2 times
Been thanked: 9 times
Contact:

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

Post by Wave » Mon 27 Jun, 2016 19:24

Захотелось всё-таки докопаться, что у меня мешает этому макросу при выключенных постоянных блоках. И вот результат:

FAR86 абсолютно нулячий, т.е. из профиля удаляю все *.db. Из плагинов стоит только LuaMacro, из макросов только scite_like. Без ConEmu (хотя не влияет).
Если постоянные блоки в редакторе включены, макрос работает идеально. Если выключены — первое же нажатие на любую клавишу курсора сбрасывает выделение. Кроме того, имеются глюки вида:

Code: Select all

local
local
local
Выделяю столбиком три буквы l, жму f, получаю

Code: Select all

focal
ocal 
ocal 
и сброшенное выделение. И только Del или BS работают в таком режиме как надо.

Всевозможные настройки типа «Del удаляет блоки» и прочая пытался в разных комбинациях совместить. Но результат один и тот же, макрос правильно работает только если включена опция «постоянные блоки».

Опробованы билды 4695, 4720. Так же пробовал это на сборке FAR Manager UE3 от Victor_VG, тоже один из каких-то недавних билдов.
Shmuel wrote:Wave, могу только предположить (ещё раз), что у вас вмешиваются какие-то плагины или макросы. Никто кроме вас это проверить не может.
Если у вас без постоянных блоков макрос работает правильно, может быть это у вас есть какой-то плагин, макрос или опция, которые влияют на?
Пользуюсь ФАРом больше 15 лет © собирательный.

User avatar
HaRT
Moderator
Posts: 8048
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 67 times
Been thanked: 100 times

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

Post by HaRT » Mon 27 Jun, 2016 19:52

Wave wrote: Если выключены — первое же нажатие на любую клавишу курсора сбрасывает выделение.
У меня стрелки влево/вправо действительно сбрасывают, хотя при постоянных блоках перемещают выделение.
Wave wrote: Выделяю столбиком три буквы l, жму f
Тут у меня более-менее: буква f вставляется во все три строки, неожиданностью является только то, до, после или вместо l (в зависимости от положения каретки относительно выделения).
Wave wrote: может быть это у вас есть какой-то плагин, макрос или опция, которые влияют
Проверял без прочих плагинов и макросов, опции не перещёлкивал. Far Manager v3.0 build 4727 x86 (2016-06-27)
Фар есть инструмент, а не нянька. © 2009 DrKnS

Shmuel
Posts: 5164
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 15 times
Been thanked: 145 times

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

Post by Shmuel » Mon 27 Jun, 2016 19:54

Wave
Макрос из поставки именно так и работает. Но в макросе есть 3 опции для установки пользователем. Вы должны установить
local OptCursorMoveResetsBlock = false.

Post Reply

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