Вопрос про mf.clip

Столкнулись с проблемой в использовании макросов? Здесь можно получить помощь.
Post Reply
iva
Posts: 128
Joined: Sat 02 Nov, 2013 21:32
Been thanked: 3 times

Вопрос про mf.clip

Post by iva »

Подскажите где можно прочитать про mf.clip ?
Хотел сделать макрос чтобы по Ctrl-V блоки вставлялись в текст с учётом состояния Insert/Overwrite, но не понял как получить информацию о находящемся в clipboard блоке. Подозреваю, что должна помочь mf.clip.
Shmuel
Posts: 6836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Вопрос про mf.clip

Post by Shmuel »

User avatar
zg
zero-gravity
Posts: 6035
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Вопрос про mf.clip

Post by zg »

  1. local clip=far.PasteFromClipboard(far.Flags.FCT_STREAM)
  2.  
  3. if clip then
  4.  
  5.   --потоковый блок
  6.  
  7. else
  8.  
  9.   clip=far.PasteFromClipboard(F.FCT_COLUMN)
  10.  
  11.   if clip then
  12.  
  13.     --вертикальный блок
  14.  
  15.   else
  16.  
  17.     --что-то другое
  18.  
  19.   end
  20.  
  21. end
iva
Posts: 128
Joined: Sat 02 Nov, 2013 21:32
Been thanked: 3 times

Вопрос про mf.clip

Post by iva »

Спасибо!
Написал вот такую штуку

Code: Select all

Macro {
area="Editor"; key="CtrlShiftV"; description="Replace from Clip Board";
action=function()
   local clip=far.PasteFromClipboard(far.Flags.FCT_COLUMN)
   if clip then
    local clip2 = win.Utf8ToOem(clip)
    local width = -1
    for j=1,#clip2 do
     local c = string.sub(clip2,j,j)
     if string.byte(c)==13 then width = j; break; end 
    end
    local height = #clip2/(width+1)
    width = width-1
 local info = editor.GetInfo()
 editor.Select(info.EditorID,far.Flags.FCT_COLUMN,info.CurLine,info.CurPos,width,height)
 Keys("CtrlD CtrlV")
   else
    Keys("CtrlV")
   end
end;
}
которая вставляет в режиме замены вертикальные блоки.
Подсчет ширины и высоты, конечно, сделан по-дурацки, но лучше не смог.
Post Reply

Return to “Нужна помощь”