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

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

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

Post by Shmuel »

Имитация многострочного печатания/удаления как в редакторе SciTE.
  • Создать вертикальный блок шириной 0 или 1 символ.
  • Курсор должен находиться в любой строке, входящей в блок.
  • Начинайте редактировать!
    scite_like_20230729.7z
    (2.09 KiB) Downloaded 51 times
Last edited by Shmuel on Sat 29 Jul, 2023 06:14, edited 15 times in total.
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

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

Post by HaRT »

Shmuel wrote:шириной 1 символ
Почему бы не 0?
Содержательное обсуждение тут: «Невидимые блоки нулевой ширины» — даже со скринкастом!
Фар есть инструмент, а не нянька. © 2009 DrKnS
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

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

Post by Shmuel »

HaRT wrote: Почему бы не 0?
Для визуализации. Можно применить и другие методы, конечно.
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

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

Post by HaRT »

Shmuel wrote: Для визуализации.
Просто в имеющихся реализациях удобно то, что выделенное замещается вводимым. Если нужно только вставить, то замещать-то и нечего. Тут бы нулевая ширина и пришлась ко двору.
По идее можно было бы подсвечивать уже набранную часть другим цветом фона — тогда будет хорошо видно, какие строки задействованы. (Предлагаемый скрипт я не пробовал. Если там оно уже так и есть, я только рад.)
Фар есть инструмент, а не нянька. © 2009 DrKnS
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

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

Post by Shmuel »

HaRT wrote: По идее можно было бы подсвечивать уже набранную часть другим цветом фона — тогда будет хорошо видно, какие строки задействованы. (Предлагаемый скрипт я не пробовал. Если там оно уже так и есть, я только рад.)
Там этого нет. Это всего лишь начальный набросок. Каждый желающий может его развивать и улучшать и делиться с сообществом.
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

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

Post by Shmuel »

В первом посте выложен скрипт с одним исправлением и правильной обработкой режима вставки/замены.
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

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

Post by Shmuel »

Обновлён файл в первом посте. Сделано несколько исправлений.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

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

Post by John Doe »

Вот такой макрос вызывает неработоспособность скрипта:

Code: Select all

Macro {
  area="Editor"; key="/./";
  action=function()
    Keys"AKey"
  end;
}
P.S.
Собственно скрипт очевидно не при чём, это больше в тему LuaMacro
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

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

Post by John Doe »

Shmuel wrote: Курсор должен находиться в любой строке, входящей в блок, на позиции блока или правее.
В SciTE работает точно так?
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

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

Post by Shmuel »

John Doe wrote:
Shmuel wrote: Курсор должен находиться в любой строке, входящей в блок, на позиции блока или правее.
В SciTE работает точно так?
Нет, так как в Scite блок нулевой ширины является видимым (курсор растягивается на неск. строк).
А вообще, скрипт ещё планируется развивать, просто переключился сейчас на другое.
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

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

Post by Shmuel »

John Doe wrote: Вот такой макрос вызывает неработоспособность скрипта:
Разрешите в условии верхнего уровня FARMACRO_KEY_EVENT. Я это не сделал сознательно.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

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

Post by John Doe »

Shmuel wrote: Нет, так как в Scite блок нулевой ширины является видимым (курсор растягивается на неск. строк).
Если я правильно понимаю, то вертикальный блок в данном случае должен как-бы заменить курсор, т.е. все действия в идеале должны выполняться в позициях блока, а не левее/правее?
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

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

Post by Shmuel »

John Doe wrote: Если я правильно понимаю, то вертикальный блок в данном случае должен как-бы заменить курсор
Так оно и есть в моей рабочей (ещё не выложенной) версии.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

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

Post by John Doe »

Shmuel wrote: Разрешите в условии верхнего уровня FARMACRO_KEY_EVENT.
Помогло.
Shmuel wrote: Я это не сделал сознательно.
А почему?
Не правильнее этим управлять с помощью NoSendKeysToPlugins?
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

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

Post by Shmuel »

John Doe wrote: Не правильнее этим управлять с помощью NoSendKeysToPlugins?
Может и так. Я на начальном этапе не хотел влезать в детали, хотелось побыстрее получить основную функциональность.
Post Reply

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