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

Здесь обсуждается всё, что касается макросов.
ObSerV
Posts: 53
Joined: Wed 29 Jul, 2009 06:26
Been thanked: 1 time

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

Post by ObSerV »

Latest post of the previous page:

Эмм... То есть желание сделать так, чтоб люди смотрели помощь и хоть немного думали, прежде чем написать сообщение = считается желанием пофлудить...
И написать сообщение (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 »

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.
User avatar
zg
zero-gravity
Posts: 6016
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

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

Post by zg »

ObSerV wrote:Вам ПОДРОБНЕЕ расписать??
не надо. и успокойтесь.
ObSerV
Posts: 53
Joined: Wed 29 Jul, 2009 06:26
Been thanked: 1 time

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

Post by ObSerV »

zg wrote:
ObSerV wrote:Вам ПОДРОБНЕЕ расписать??
не надо. и успокойтесь.
ну... расписать-то расписал... и успокоился...
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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

Post by John Doe »

ObSerV wrote:code="Keys(\"RCtrl0 Home ShiftEnd CtrlIns End Enter ShiftIns Ctrl0\")"
Что не работает кроме буфера?
mf.clip(5) в начало, и с буфером будет порядок.
ObSerV
Posts: 53
Joined: Wed 29 Jul, 2009 06:26
Been thanked: 1 time

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

Post by ObSerV »

О, спасибо, будем знать :)
-=QWERTY=-
Posts: 64
Joined: Wed 16 Mar, 2005 16:18

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

Post by -=QWERTY=- »

Кстати Ctrl+P при постоянных блоках копирует блок, и строку копирует тоже. Или это чтобы не выделять строку а сразу копировать одним сочетанием клавиш?
ladserg
Posts: 234
Joined: Thu 19 Feb, 2009 14:51
Has thanked: 5 times
Been thanked: 6 times

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

Post by ladserg »

Если я правильно понял задачу, то можно попробовать так:



Но я бы повесил это на Ctrl+P и поставил бы условие, что текст не выделен. Так можно было бы это использовать вместе со встроенным Ctrl+P. Например так:

Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

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

Post by Shmuel »

Можно проще: flags="NoEVSelection";
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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

Post by John Doe »

Имхо флаги-условия это пережиток старого макроязыка, и лучше использовать condition.
condition = function() return not Object.Selected end;
На мантисе есть пожелание, реализация которого позволила бы записать короче: condition="not Object.Selected".

По теме: сабжевый макрос есть в наборе turbo (Ctrl-K-C).
ccaid
Posts: 908
Joined: Fri 12 Jun, 2009 16:04
Has thanked: 24 times
Been thanked: 6 times

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

Post by ccaid »

приведенные варианты используют плагинное апи. через макро апи все проще и сложнее. проще, потому что:

Code: Select all

Editor.InsStr(Editor.Value)
решает задачу. сложнее, потому что не работает на последней строке без символов конца строки, и ничего с этим не поделать: макро апи не дает доступа к этому функционалу. (разве что запилить на мантис виш про Editor.InsStr)
Фар делают добрые люди
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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

Post by John Doe »

А добавить в начало что-то вроде if Editor.CurLine==Editor.Lines then Keys"End Enter Up" end
ccaid
Posts: 908
Joined: Fri 12 Jun, 2009 16:04
Has thanked: 24 times
Been thanked: 6 times

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

Post by ccaid »

да, этой проверкой, видимо, можно решить вопрос, но чтобы не было лишнего перевода строки, и чтобы не терялась позиция, надо немало дополнительных приседаний сделать. это уже не однострочное решение, упомянутое мною.
а еще бывают строки без перевода строки после работы EditWrap…
Фар делают добрые люди
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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

Post by John Doe »

ccaid wrote: потому что не работает на последней строке без символов конца строки
У меня почему-то однострочное решение работает и на последней строке без символов конца строки.
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

John Doe wrote:
ccaid wrote: потому что не работает на последней строке без символов конца строки
У меня почему-то однострочное решение работает и на последней строке без символов конца строки.
Вероятно, вы разное понимаете под „работает“. Предполагаю, что ccaid хочет новую строку, а John Doe — повтор в одной (последней) строке.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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

Post by John Doe »

Я ничего не хочу, но по этой команде последняя строка честно дублируется, создавая новую.
Post Reply

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