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

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

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

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

Latest post of the previous page:

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: 5542
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 85 times
Contact:

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

Post by zg » Sat 14 Jun, 2014 11:41

ObSerV wrote:Вам ПОДРОБНЕЕ расписать??
не надо. и успокойтесь.

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

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

Post by ObSerV » Sat 14 Jun, 2014 12:21

zg wrote:
ObSerV wrote:Вам ПОДРОБНЕЕ расписать??
не надо. и успокойтесь.
ну... расписать-то расписал... и успокоился...

User avatar
John Doe
Бюрократ
Posts: 12250
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 32 times
Been thanked: 162 times

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

Post by John Doe » Sat 14 Jun, 2014 17:57

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 » Sat 14 Jun, 2014 18:53

О, спасибо, будем знать :)

-=QWERTY=-
Posts: 64
Joined: Wed 16 Mar, 2005 16:18

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

Post by -=QWERTY=- » Sat 21 Jun, 2014 17:05

Кстати Ctrl+P при постоянных блоках копирует блок, и строку копирует тоже. Или это чтобы не выделять строку а сразу копировать одним сочетанием клавиш?

ladserg
Posts: 215
Joined: Thu 19 Feb, 2009 14:51
Has thanked: 1 time
Been thanked: 1 time

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

Post by ladserg » Sun 07 Sep, 2014 13:30

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



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


Shmuel
Posts: 5740
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 21 times
Been thanked: 204 times

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

Post by Shmuel » Sun 07 Sep, 2014 13:58

Можно проще: flags="NoEVSelection";

User avatar
John Doe
Бюрократ
Posts: 12250
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 32 times
Been thanked: 162 times

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

Post by John Doe » Sun 07 Sep, 2014 14:20

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

По теме: сабжевый макрос есть в наборе turbo (Ctrl-K-C).

ccaid
Posts: 846
Joined: Fri 12 Jun, 2009 16:04
Has thanked: 17 times
Been thanked: 5 times

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

Post by ccaid » Sun 12 Jul, 2015 10:45

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

Code: Select all

Editor.InsStr(Editor.Value)
решает задачу. сложнее, потому что не работает на последней строке без символов конца строки, и ничего с этим не поделать: макро апи не дает доступа к этому функционалу. (разве что запилить на мантис виш про Editor.InsStr)
Фар делают добрые люди

User avatar
John Doe
Бюрократ
Posts: 12250
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 32 times
Been thanked: 162 times

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

Post by John Doe » Sun 12 Jul, 2015 19:46

А добавить в начало что-то вроде if Editor.CurLine==Editor.Lines then Keys"End Enter Up" end

ccaid
Posts: 846
Joined: Fri 12 Jun, 2009 16:04
Has thanked: 17 times
Been thanked: 5 times

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

Post by ccaid » Sun 12 Jul, 2015 22:10

да, этой проверкой, видимо, можно решить вопрос, но чтобы не было лишнего перевода строки, и чтобы не терялась позиция, надо немало дополнительных приседаний сделать. это уже не однострочное решение, упомянутое мною.
а еще бывают строки без перевода строки после работы EditWrap…
Фар делают добрые люди

User avatar
John Doe
Бюрократ
Posts: 12250
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 32 times
Been thanked: 162 times

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

Post by John Doe » Mon 13 Jul, 2015 07:22

ccaid wrote: потому что не работает на последней строке без символов конца строки
У меня почему-то однострочное решение работает и на последней строке без символов конца строки.

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

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

Post by HaRT » Mon 13 Jul, 2015 07:31

John Doe wrote:
ccaid wrote: потому что не работает на последней строке без символов конца строки
У меня почему-то однострочное решение работает и на последней строке без символов конца строки.
Вероятно, вы разное понимаете под „работает“. Предполагаю, что ccaid хочет новую строку, а John Doe — повтор в одной (последней) строке.
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
John Doe
Бюрократ
Posts: 12250
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 32 times
Been thanked: 162 times

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

Post by John Doe » Mon 13 Jul, 2015 07:38

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

ccaid
Posts: 846
Joined: Fri 12 Jun, 2009 16:04
Has thanked: 17 times
Been thanked: 5 times

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

Post by ccaid » Mon 13 Jul, 2015 13:36

John Doe, а если сохранить файл, выйти и открыть заново?
а еще можно включить отображение пробельных символов.
Фар делают добрые люди

User avatar
John Doe
Бюрократ
Posts: 12250
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 32 times
Been thanked: 162 times

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

Post by John Doe » Mon 13 Jul, 2015 14:00

Так это баг в фаре.

Code: Select all

Editor.InsStr(nil,Editor.Lines)
В моём представлении эта команда должна вставлять перенос строки, однако в режиме отображения пробельных символов видно что этого не происходит.

Post Reply

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