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

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

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

Post by Shmuel »

Latest post of the previous page:

Вообще-то эти макросы отношения к Turbo вроде не имеют, они как бы сами по себе.

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

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

Post by HaRT »

Shmuel wrote: эти макросы отношения к Turbo вроде не имеют
Они там идут в комплекте, как бы заодно.
Shmuel wrote: Там каждый из обоих макросов заканчивается вызовом Editor.Sel(RESET).
Вылечил заменой на Keys('AKey').
5 минут спустя: недовылечил. Теперь вправо перескакивает через одну позицию. Но идея ясна, как понадобится, дочиню.
Фар есть инструмент, а не нянька. © 2009 DrKnS

Shmuel
Posts: 6151
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 31 times
Been thanked: 320 times

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

Post by Shmuel »

И ещё версия на ночь: улучшена работа Undo/Redo.

User avatar
Wave
Posts: 1772
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 4 times
Been thanked: 16 times

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

Post by Wave »

С новой версией нормально работают пробелы и вообще стало можно пользоваться. Но всё так же только с постоянными блоками.

Заметил такую фигню:

Постоянные блоки выключены.
Ставлю выделение шириной в один знакосимвол.
Жму букву.
Выделение пропадает, схлопывается, строчки сдвигаются на одно знакоместо, а редактирование дальше происходит в одной строке.

Если же выделение нулевой ширины, то после нажатия первой буквы все строки пропечатывают эту букву, появляется выделение шириной в одну строку и после нажатия второй буквы происходит то, что описал выше.

Т.е. при отстутствии постоянных блоков проблема в том, что выделение пропадает.

Upd. Увидел, как выделение привязалось к позиции курсора — ух ты, вот это то, что надо!
Макрос неприменим в случае мешанины пробелов и табов, хотя это не столько проблема макроса, сколько пользователя. Я себе везде подсветку табов включаю, такшта…

Upd. Блин, пипец у меня что-то непонятное с блоками творится. Удалил все макросы кроме этого, перезапустил фар, выключил постоянные блоки через F9 → Параметры → Настройки редактора — а они ведут себя как включенные!

Upd. Внимательней надо было тему читать. Конфликт с набором макросов Turbo. Не понимаю, только, почему тогда начинаются глюки, если удаляю все макросы.

Upd. Хотя нет, удалил Turbo и вырубил постоянные блоки, перезапустил фар — всё равно этот макрос не работает.
Last edited by Wave on Fri 13 Nov, 2015 17:03, edited 2 times in total.
Пользуюсь ФАРом больше 20 лет © собирательный.

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

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

Post by HaRT »

Wave wrote: Заметил такую фигню
Не подтверждаю. У меня нормально работает. Думаю у Вас дело в этом:
Wave wrote: Блин, пипец у меня что-то непонятное с блоками творится.
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
Wave
Posts: 1772
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 4 times
Been thanked: 16 times

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

Post by Wave »

Ладно, по итогам всё-таки оставил Турбо, постоянные блоки и этот макрос - так - работает.
Пользуюсь ФАРом больше 20 лет © собирательный.

Shmuel
Posts: 6151
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 31 times
Been thanked: 320 times

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

Post by Shmuel »

Wave, кроме макросов есть ещё плагины, они тоже могут влиять.

User avatar
Wave
Posts: 1772
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 4 times
Been thanked: 16 times

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

Post by Wave »

Само собой. И я, кажется, говорил, что плагины исследовать буду ещё на эту тему. Но не сейчас.
Пользуюсь ФАРом больше 20 лет © собирательный.

Shmuel
Posts: 6151
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 31 times
Been thanked: 320 times

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

Post by Shmuel »

Добавлена обработка клавиш Up и Down (теперь не сбрасывается выделение в непостоянных блоках).

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

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

Post by HaRT »

Shmuel wrote: теперь не сбрасывается выделение в непостоянных блоках
У меня работает только с блоками ширины 1. Так и задумано? Зачем такое ограничение?
Last edited by HaRT on Sun 15 Nov, 2015 16:05, edited 1 time in total.
Фар есть инструмент, а не нянька. © 2009 DrKnS

Shmuel
Posts: 6151
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 31 times
Been thanked: 320 times

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

Post by Shmuel »

HaRT wrote: У меня работает только с блоками ширины 1. Так и задумано? Зачем такое ограничение?
Если можно, объясните подробнее: как хотелось бы, и как теперь.

Я делаю блок видимым для удобства, чтобы была видна область редактирования, в т.ч. и её высота. А начинать работу можно и с выделения нулевой ширины.

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

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

Post by HaRT »

Shmuel wrote: как хотелось бы, и как теперь
Имею блок ширины 2, 3 и более, нажимаю Up или Down. Сейчас каретка перемещается, а выделение сбрасывается; хочется, чтобы каретка перемещалась, а выделение оставалось (хотя бы просто ради единообразия).
Shmuel wrote: начинать работу можно и с выделения нулевой ширины
Да, я и сам заметил. Пока не понял, удобно это или нет — поэтому пока не возражаю.
Фар есть инструмент, а не нянька. © 2009 DrKnS

Shmuel
Posts: 6151
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 31 times
Been thanked: 320 times

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

Post by Shmuel »

HaRT wrote: Имею блок ширины 2, 3 и более, нажимаю Up или Down. Сейчас каретка перемещается, а выделение сбрасывается; хочется, чтобы каретка перемещалась, а выделение оставалось
Изначально (и до сих пор) этот скрипт задумывался как "минимально интрузивный", то-есть он не должен вмешиваться, если его явно не попросят. Скрипт считает вертикальные выделения шириной 0 и 1 "своими", а прочие он просто не обрабатывает.

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

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

Post by HaRT »

Shmuel wrote: Скрипт считает вертикальные выделения шириной 0 и 1 "своими", а прочие он просто не обрабатывает.
Так ведь это совершенно неинтуитивно! В частности, я давно прошу, чтобы и замещение блока происходило независимо от его ширины, как, например, в современных Visual Studio:
HaRT wrote: * Подобно тому, как вводимый текст замещает обычный блок, хотелось бы, чтобы и тут вводимый текст замещал каждую строку вертикального блока — тогда будет удобно, например, заменить один повторяющийся друг под другом фрагмент на другой. Да и ограничение 1 на ширину блока тоже естественным образом снимется.
Все те (июльские) пожелания в силе, притом даже желательнее недавних.
Фар есть инструмент, а не нянька. © 2009 DrKnS

Shmuel
Posts: 6151
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 31 times
Been thanked: 320 times

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

Post by Shmuel »

HaRT wrote: в современных Visual Studio:
Не знаю насчёт "современных", у меня VS2010 - там при вводе первого же символа содержимое вертикального блока удаляется, после чего вводится этот символ во всех строках блока, причём блок становится нулевой ширины. Это то, чего вы хотите?

А что касается Up и Down - в VS2010 они сбрасывают блок, чего вы, кажется, не хотите. :)

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

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

Post by HaRT »

Shmuel wrote: вводится этот символ во всех строках блока, причём блок становится нулевой ширины. Это то, чего вы хотите?
Именно, т.е. чтобы функциональность не ограничивалась блоками ширины 1. Нюанс заключается в том, что результирующий блок ширины 0 в Фаре не виден; поэтому я не против того, чтобы, как и в других сценариях, получился блок ширины 1 и чтобы обращение с ним было, как сейчас.
Shmuel wrote: А что касается Up и Down
Я лишь хочу, чтобы поведение при ширине больше 1 было таким же, как при ширине 1.
Фар есть инструмент, а не нянька. © 2009 DrKnS

Post Reply

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