Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » FAR Manager (часть 4)

Модерирует : gyra, Maz

Maz (23-11-2017 18:57): FAR Manager (часть 5)  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
-- http://forum.ru-board.com/topic.cgi?forum=5&topic=31718&start=7620#7
-- v1.2
 
local F = far.Flags
 
local function GetFileName(l) return regex.match(l,'^(?:\\[\\d+?\\] )?([A-Z]:.+?)(?::|$)') end
local function GInfo()
  local ei=editor.GetInfo(-1)
  local y,x,p = ei.CurLine,ei.CurPos,ei.LeftPos
  local l,i,f = editor.GetString(-1,y).StringText,y
  local n,s = l:match('^(%d-)[-:](.+)$')
  repeat
    i,f = i-1,GetFileName(editor.GetString(-1,i).StringText)
  until f or i==-1
  return f,l,y,x,p,n,s
end
 
local function FileSave(t)
  editor.Editor(t[1][1],_,_,_,_,_,bit64.bor(F.EF_NONMODAL,F.EF_IMMEDIATERETURN,F.EF_OPENMODE_USEEXISTING))
  for j=2,#t do editor.SetString(-1,t[j][1],t[j][2]) end
  if not editor.SaveFile(-1) then msgbox("Warning! File is not saved - blocked?",t[1][1]) else editor.Quit(-1) end
end
 
Macro {
area="Editor"; key="AltG"; flags=""; description="RESearch: 1. Grep Goto line";  
condition=function() return editor.GetInfo(-1).FileName:match('\\%w-%.tmp$') end;
action=function()
  local f,l,y,x,p,n,s = GInfo()
  if n then
    editor.SetPosition(-1,y,x,_,_,p)
    if f then
      editor.Editor(f,_,_,_,_,_,bit64.bor(F.EF_NONMODAL,F.EF_IMMEDIATERETURN,F.EF_OPENMODE_USEEXISTING),tonumber(n),x-#n-1)
      editor.SetPosition(-1,_,_,_,_,p-#n)
    end
  end
end;
}
 
Macro {
area="Editor"; key="AltG"; flags=""; description="RESearch: 2. Grep Save line";  
condition=function() return editor.GetInfo(-1).FileName:match('\\%w-%.tmp$') end;
action=function()
  local f,l,y,x,p,n,s = GInfo()
  if n then
    editor.SetPosition(-1,y,x,_,_,p)
    if f then
      editor.Editor(f,_,_,_,_,_,bit64.bor(F.EF_NONMODAL,F.EF_IMMEDIATERETURN,F.EF_OPENMODE_USEEXISTING),tonumber(n),x-#n-1)
      editor.SetString(-1,n,s)
      if not editor.SaveFile(-1) then msgbox("Warning! File is not saved - blocked?",f) else editor.Quit(-1) end
    end
  end
end;
}
 
Macro {
area="Editor"; key="AltG"; flags=""; description="RESearch: 3. Grep Save All";  
condition=function() return editor.GetInfo(-1).FileName:match('\\%w-%.tmp$') end;
action=function()
  local t={}
  for i=1,editor.GetInfo(-1).TotalLines do
    local l=editor.GetString(-1,i).StringText
    local y,s = l:match('^(%d-)[-:](.+)$')
    if y and s and #t>=1
    then table.insert(t,{y,s})
    else
      local f=GetFileName(l)
      if f then
        if #t>1 then FileSave(t) t={} end
        t[1]={f,nil}
      end
    end
  end
  if #t>1 then FileSave(t) end
end;
}

Всего записей: 3484 | Зарегистр. 16-06-2007 | Отправлено: 15:29 24-06-2017 | Исправлено: Alexyz21, 11:49 25-06-2017
   

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » FAR Manager (часть 4)
Maz (23-11-2017 18:57): FAR Manager (часть 5)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru