Макрос для дублирования строки в редакторе

Здесь обсуждается всё, что касается макросов.
Post Reply
al666
Posts: 239
Joined: Mon 04 Jul, 2005 08:55
Been thanked: 1 time

Макрос для дублирования строки в редакторе

Post by al666 »

Наверняка кто-то уже имеет правильный макрос для копирования строки в редакторе (на кнопке F5, разумеется :) ).

Поделитесь.
Kildor
Posts: 1515
Joined: Wed 16 Mar, 2005 06:26
Location: Новосибирск
Been thanked: 1 time
Contact:

Post by Kildor »

для копирования? или для дублирования??
Если первое, то CtrlC на строке.
Если второе, то

Code: Select all

$iClip
$if(Editor.State & 0x020 )
 CtrlD $exit $end
$if(Editor.State & 0x010 )
 CtrlD $exit $end
%cp=Editor.CurPos; CtrlU CtrlC Home
$if(Editor.CurPos!=1)
 Home $end CtrlV CtrlU
 $while (Editor.CurPos!=%cp)
  $if (Editor.CurPos>%cp) Left
  $else
   Right $end
 $end
Ты мне не выкай!
«ФарФорум не для пользователей!»
Upd:
P.S. Я просто поддерживаю беседу.» © Народ.

xmpp:kildor@jabber.ru
al666
Posts: 239
Joined: Mon 04 Jul, 2005 08:55
Been thanked: 1 time

Post by al666 »

Не совсем понятно, зачем в начале Ctrl-D,
а в остальном — то, что нужно.
Kildor
Posts: 1515
Joined: Wed 16 Mar, 2005 06:26
Location: Новосибирск
Been thanked: 1 time
Contact:

Post by Kildor »

al666
просто я его взял из своего фара, а у меня этот макрос висит на CtrlD, и логика там следующая:
Если в редакторе есть выделеный блок, то вызываем CtrlD (то есть, удаление выделеного блока)
Иначе, дублируем строку.
Соответственно, раз ты хочешь повешать его на F5, то да, тебе начало макроса не нужно ;)
Ты мне не выкай!
«ФарФорум не для пользователей!»
Upd:
P.S. Я просто поддерживаю беседу.» © Народ.

xmpp:kildor@jabber.ru
User avatar
Smitis
Posts: 1709
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 23 times
Been thanked: 55 times

Post by Smitis »

Плагин MeLike умеет
Разум когда-нибудь победит.
User avatar
HaRT
Moderator
Posts: 10823
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Post by HaRT »

Предлагаю свой макрос на эту тему.
Дублируется выделение (если оно есть) или текущая строка (в противном случае). Если установлен плагин Mouse Select++ версии 2.03 или выше, то а) выделение сохраняется, и б) дубликат оказывается в правильном месте (сразу вслед за оригиналом), даже если курсор находится невесть где.
Примечание: в любом случае используется закладка №0.

Code: Select all

REGEDIT4

[HKEY_CURRENT_USER\Software\Far\PluginHotkeys\Plugins/MSel/MouseSelect.DLL]
"Hotkey"="o"

[HKEY_CURRENT_USER\Software\Far\KeyMacros\Editor\F5]
"Sequence"="F11 %c = Checkhotkey ( \"o\" ); $If ( %c ) o s $Else Esc $End %l = ! Selected; CtrlShift0 $IClip CtrlC $If ( %c ) F11 o e $Else $If ( %l ) Home $End $End CtrlU CtrlV Ctrl0 $If ( %c ) F11 o r $Else $If ( %l ) CtrlU $End $End"
"DisableOutput"=dword:00000001
"NoSendKeysToPlugins"=dword:00000001
"Description"="MSel: duplicate block or line"
@="MSel: duplicate block or line"
User avatar
[e]Bu$ter
Posts: 792
Joined: Mon 30 May, 2005 23:05
Location: Беларусь, Минск
Contact:

Post by [e]Bu$ter »

HaRT wrote:Предлагаю свой макрос на эту тему.
...
Клёво! Спасибо. :)
AntVS
Posts: 91
Joined: Thu 03 Nov, 2011 06:36

Re: Макрос для дублирования строки в редакторе

Post by AntVS »

Я делаю себе простейшие макросы. Вот мой макрос:
Команда выполнения F5
Область выполнения Текстовый редактор
Последовательность CtrlShift4 Home ShiftDown CtrlP CtrlU Ctrl4
Post Reply

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