Дублирование строки

Здесь обсуждается всё, что касается макросов.
stefanenko
Posts: 105
Joined: Sun 20 Jun, 2010 12:37
Has thanked: 21 times
Been thanked: 3 times

Дублирование строки

Post by stefanenko » Sat 14 Jun, 2014 01:54

Ребят помогите.
Нужен макрос дублирования строки в редакторе.

Спасибо.

Shmuel
Posts: 5867
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 22 times
Been thanked: 215 times

Re: Дублирование строки

Post by Shmuel » Sat 14 Jun, 2014 06:31

Можно сделать разными способами. Вот один из вариантов.
  1. Macro {
  2.   description="Duplicate current line";
  3.   area="Editor"; key="CtrlD";
  4.   action=function()
  5.     local info,line = editor.GetInfo(),editor.GetString()
  6.     local eol = line.StringEOL ~= "" and line.StringEOL or nil
  7.     editor.UndoRedo(nil,"EUR_BEGIN")
  8.     editor.SetPosition(nil,nil,1)
  9.     editor.InsertString()
  10.     editor.SetPosition(nil,info)
  11.     editor.SetString(nil,nil,line.StringText,eol)
  12.     editor.UndoRedo(nil,"EUR_END")
  13.     -- Keys "Down"
  14.   end;
  15. }

stefanenko
Posts: 105
Joined: Sun 20 Jun, 2010 12:37
Has thanked: 21 times
Been thanked: 3 times

Re: Дублирование строки

Post by stefanenko » Sat 14 Jun, 2014 06:42

Просто супер! Огромное спасибо + коммент убрал :)

ObSerV
Posts: 53
Joined: Wed 29 Jul, 2009 06:26
Been thanked: 1 time

Re: Дублирование строки

Post by ObSerV » Sat 14 Jun, 2014 06:49

А еще проще - прочитать-таки помощь про простое создание макросов и сделать, например, так:
ctrl-. Home Shift-End Ctrl-ins Home СтрелкаВниз Shift-Ins Ctrl-. Ctrl-D Enter
и по Ctrl-D дублировать себе строку...

stefanenko
Posts: 105
Joined: Sun 20 Jun, 2010 12:37
Has thanked: 21 times
Been thanked: 3 times

Re: Дублирование строки

Post by stefanenko » Sat 14 Jun, 2014 06:58

Да проще чем то. Макросы я регулярно использую. Практически каждый день (работаю с php и разным текстом много).
Но как тут сохранить позицию в строке? Не понял с ходу.
Вообще сам бы и на луа написал, но с описанием четким у нас проблемы кажется. На форуме много противоречивой информации.

Shmuel
Posts: 5867
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 22 times
Been thanked: 215 times

Re: Дублирование строки

Post by Shmuel » Sat 14 Jun, 2014 07:23

ObSerV wrote:А еще проще - прочитать-таки помощь про простое создание макросов и сделать, например, так:
ctrl-. Home Shift-End Ctrl-ins Home СтрелкаВниз Shift-Ins Ctrl-. Ctrl-D Enter
и по Ctrl-D дублировать себе строку...
Вы хоть бы проверили, прежде чем советовать.

stefanenko
Posts: 105
Joined: Sun 20 Jun, 2010 12:37
Has thanked: 21 times
Been thanked: 3 times

Re: Дублирование строки

Post by stefanenko » Sat 14 Jun, 2014 07:39

Ну он же написал - например. Суть понятна. Но позицию в строке не сохранишь

Shmuel
Posts: 5867
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 22 times
Been thanked: 215 times

Re: Дублирование строки

Post by Shmuel » Sat 14 Jun, 2014 07:42

stefanenko wrote:Ну он же написал - например. Суть понятна. Но позицию в строке не сохранишь
Так напишите не "например", а так, чтобы работало - тогда и поговорим.

stefanenko
Posts: 105
Joined: Sun 20 Jun, 2010 12:37
Has thanked: 21 times
Been thanked: 3 times

Re: Дублирование строки

Post by stefanenko » Sat 14 Jun, 2014 08:12

Я так делал

Code: Select all

area="Editor"
key="CtrlD"
flags=""
description=""
code="Keys(\"Home ShiftDown RCtrlIns Down Up ShiftIns Up\")"

User avatar
DrKnS
Posts: 5372
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 6 times
Been thanked: 221 times

Re: Дублирование строки

Post by DrKnS » Sat 14 Jun, 2014 08:17

Дублировать через CtrlIns и ShiftIns - это фу-фу-фу. Буфер обмена теряется же.

Shmuel
Posts: 5867
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 22 times
Been thanked: 215 times

Re: Дублирование строки

Post by Shmuel » Sat 14 Jun, 2014 08:25

stefanenko wrote:Я так делал

Code: Select all

area="Editor"
key="CtrlD"
flags=""
description=""
code="Keys(\"Home ShiftDown RCtrlIns Down Up ShiftIns Up\")"
- портит буфер обмена
- зависит от установок редактора (при постоянных блоках остаётся выделенная строка)
- не работает на последней строке, если в ней нет перевода строки
- не сохраняет позицию в строке

Зато сделать легче.

ObSerV
Posts: 53
Joined: Wed 29 Jul, 2009 06:26
Been thanked: 1 time

Re: Дублирование строки

Post by ObSerV » Sat 14 Jun, 2014 08:54

господи, однако, в помощь никто не смотрит...
Ну поставьте закладку в текущей позиции, затем верните на позицию закладки...
(вы-ж их совсем не используете - в помощь-то никто не смотрит)
При постоянных блоках сбросьте выделение...
(я ими не пользуюсь, а в помощь в этом случае и мне смотреть лень)
Последняя строка если надо - энд, энтер, шифт-инс вместо вниз шифт-инс.
(трудно модифицировать?)
В исходных данных этих пунктов не было - не вижу проблем подогнать...
Буфер, да, портит... Но и это при необходимости решить можно...
Основная мысль предыдущего поста - подумать чуть и помощью воспользоваться - тем более, что там Ф7 есть.

Shmuel
Posts: 5867
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 22 times
Been thanked: 215 times

Re: Дублирование строки

Post by Shmuel » Sat 14 Jun, 2014 09:03

ObSerV wrote:господи, ну поставьте закладку в текущей позиции, затем верните на позицию закладки...
При постоянных блоках сбросьте выделение...
Последняя строка если надо - энд, энтер, шифт-инс вместо вниз шифт-инс.
В исходных данных этих пунктов не было - не вижу проблем подогнать...
Буфер, да, портит... Но и это при необходимости решить можно...
Слова, слова, слова... На словах всё просто.

stefanenko
Posts: 105
Joined: Sun 20 Jun, 2010 12:37
Has thanked: 21 times
Been thanked: 3 times

Re: Дублирование строки

Post by stefanenko » Sat 14 Jun, 2014 10:37

К чему все экзерсисы если уже во втором сообщении все написано?
Просто мы хотим пофлудить. :)

ObSerV
Posts: 53
Joined: Wed 29 Jul, 2009 06:26
Been thanked: 1 time

Re: Дублирование строки

Post by ObSerV » Sat 14 Jun, 2014 11:26

Эмм... То есть желание сделать так, чтоб люди смотрели помощь и хоть немного думали, прежде чем написать сообщение = считается желанием пофлудить...
И написать сообщение (2 мин), ждать, пока ответят (4 часа), уж не говорю про флуд... (х часов)...
Хотя-бы, как-нибудь, равно - почитать помощь (5 мин), подумать (30 сек), поправить то, что неправильно подумал (ну 1,5 минуты)?
Я уж не говорю про тех, кто в эту историю ввязался с уточнениями: "не работает, работает не так, работает не так как хотелось бы мне, этого нельзя сделать (хотя можно)... И т.д. и т.п.
И да, первое сообщение я совсем не проверял - написал то, что можно сделать, навскидку, совсем не думая...

А с другой стороны... Да, и пофлудить.
Last edited by ObSerV on Sat 14 Jun, 2014 12:13, edited 1 time in total.

ObSerV
Posts: 53
Joined: Wed 29 Jul, 2009 06:26
Been thanked: 1 time

Re: Дублирование строки

Post by ObSerV » Sat 14 Jun, 2014 11:31

Shmuel wrote:Слова, слова, слова... На словах всё просто.
Вам ПОДРОБНЕЕ расписать??
area="Editor"
key="CtrlD"
flags=""
description=""
code="Keys(\"RCtrl0 Home ShiftEnd CtrlIns End Enter ShiftIns Ctrl0\")"
Что не работает кроме буфера?
И постоянные блоки не смотрел - лень...
Last edited by ObSerV on Sat 14 Jun, 2014 11:59, edited 4 times in total.

Post Reply

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