lua and moon scripts, macros repository for Far Manager 3.0
Far Manager is powerful files and archives manager and first choice Admins for Windows OSes. Far Manager works in text mode and provides a simple and intuitive interface for performing most of the necessary actions: viewing files and directories; editing, copying and renaming files; and MANY other actions.
Far Manager has a built-in scripting languages: lua and moon, which allows you to solve a very wide range of tasks using the Far and Windows API's.
ansicolors.lua
v1.1.2 (4974 bytes, changed 2021-09-03 05:20)
SHA-256 411afd16e69c2b7b4bc63fe0804a5b081a5892dba4c4a3874efa90d04d66edda
Ansi colors for console
Tags format: <#xya>, x - foreground color 0..f, y - background color 0..f, a - attributes [rbdiul]
r - restore default color for foreground/background, s - skip, don't change foreground/background color
Examples:
local colors = require'ansicolors'
print(colors('%{bright italic red underline}hello'))
print(colors('<#ecuib>Hello<#rrr>, World!'))
v0.9.2.1 (28275 bytes, changed 2021-08-21 07:46)
SHA-256 7d72d9df2e16681075c9b4dc1516f2c353f223e70b5d2933e30d6ed0e8af6181
For fast find solution, put the compiled ChessKnight.exe to one folder with ChessKnight.lua
v0.9.2.3 (15826 bytes, changed 2021-08-24 06:26)
SHA-256 c8712ace7aaa4a4eb515a768a3bb53498893b919c389184bd4bbe48c4b0a200c
Finding the path of the chess knight. The path can be closed. The chessboard can be up to 127x127 in size, with any aspect ratio. Rules: previously visited squares and squares with holes are not available for moving.
Launch: in cmdline Far.exe: lua:@ChessKnight.lua
v1.1.1 (2369 bytes, changed 2020-04-09 09:55)
SHA-256 4889097a118ea867db12c0314e83269fb20d9a9053b2cca40b2799ead068173f
Editing command line content in the editor
Keys: F4 in Panel with not empty command line, F2 in editor for save text to command line
v1.1.10.4 (12891 bytes, changed 2021-08-04 13:02)
SHA-256 9ea919da55a10599136e509d823c6f04603320bc2c7bb9481f0ebf28d5e53c3a
Resizing dialogs, aligning the positions of dialog elements
Keys: F2 in dialogs or CtrlAltRight or CtrlAltLeft
Url: https://forum.farmanager.com/viewtopic.php?p=148024#p148024
Based on https://forum.farmanager.com/viewtopic.php?p=146816#p146816
v1.1.3.6 (5356 bytes, changed 2021-12-11 09:48)
SHA-256 2fe19ef3931fb57fcf4d480d40d01b8c9a58a4dc7ad2f98547e592ef72cabcad
Highlighting Cyrillic and space symbols
Required: MessageX.lua in modules folder
Keys: F3
author zg, co-author AleXH
Url: https://forum.ru-board.com/topic.cgi?forum=5&topic=48136&start=960#17
prototype: https://forum.farmanager.com/viewtopic.php?f=60&t=8674
v1.2.3.1 (12524 bytes, changed 2021-07-17 05:03)
SHA-256 b1b883f7aca361827213dae91b1862c7cf95ae4e13ab03468c8b1c8867af2525
Filter Duplicates File Names with complex logic
Keys: launch from Macro Browser alt.
Tip: In the dialog all elements have prompts, press F1 for help
v1.1.3.6 (5236 bytes, changed 2021-12-11 09:47)
SHA-256 17ebed0cee4efbddc9666ec7f794a314f19adccd619a9855286e3810dc418239
Highlighting mixed Latin and Cyrillic letters in the editor
Required: MessageX.lua in modules folder
Keys: F3
author zg, co-author AleXH
Url: https://forum.ru-board.com/topic.cgi?forum=5&topic=49572&start=2460#3
prototype: https://forum.farmanager.com/viewtopic.php?f=60&t=8674
v1.0 (863 bytes, changed 2020-06-09 09:02)
SHA-256 7c0cdf472de926a76334f580227ceeeca5e597cf7ae32714d8b172ae0f8c0a03
Url: http://forum.ru-board.com/topic.cgi?forum=5&topic=31718&start=7640#7
v1.3.2.1 (2980 bytes, changed 2021-07-12 18:23)
SHA-256 2dbf102652abcdaef4bce8ed36f64d725497d4259fbff2bfee6fb2394d044f40
Search for lines with minimum and maximum length, excluding the first and last lines, they are often empty
Press the [ Min ] or [ Max ] button for to go to this line
Required: MessageX.lua in the modules folder
Keys: F3
v1.1.2 (6180 bytes, changed 2022-02-18 13:18)
SHA-256 10eb2e8768dbb5ecd904125a1d6ac670484894eb044f0d177ed26aa01a001b37
Tag navigation in files opened in the editor: [dgmsx]?html?, xslt?, [xy]ml
Required: plugin LFSearch (LuaFAR Search) by Shmuel
Keys: Alt[JKLP]
v1.1.0.2 (4806 bytes, changed 2021-05-17 11:28)
SHA-256 41228000b7cabc87b7cd770b52146646ac0bdeaa53c602409c45659ce1450910
Extend Quit Far Dialog
Required: MessageX.lua in the modules folder
Keys: F10
v1.7.12 (11561 bytes, changed 2022-06-03 06:21)
SHA-256 e1567f162d6d08ff0e0c5a6d85830768eabe63a1a5c6613437649b0456fb9041
Opening changelog and updating Far Manager to any version available on the site
Far: press [ Reload Last ] to reload the list with files
GitHub: press [ More >> ] to get more files
GitHub: press [ Reload Last ] to reload last page with files
GitHub: press [ Reload All ] to reload all pages
When you run the macro again, the build will be taken from the current position in Far.changelog
Required: curl.exe, nircmd.exe, 7z.exe, requires tuning for local conditions
Keys: launch from Macro Browser alt.
Url: https://forum.ru-board.com/topic.cgi?forum=5&topic=49572&start=700#19
v1.0.0.2 (1224 bytes, changed 2022-02-18 13:24)
SHA-256 ced9c13da8abbeb0a969f93bcd6661465f6b2b70585bdaf30644bd30c1884a9d
Visual improvement of HTML-XML code (pretty print), creates a new file name~2.ext
Keys: launch from Macro Browser alt.
v0.6.7.9 (9274 bytes, changed 2021-07-29 15:13)
SHA-256 532b2f28cae344de8cef4c94288dd40e7a13769683bf9fdac564188a9567de78
Color MessageX(Msg,Title,Buttons,Flags,HelpTopic,Guid,ExecDelay) module with support default button assignments
Support delay execution in seconds (ExecDelay:integer)
Support flags: "wlcm"
w - warning dialog, l - left align (default center align), c - color mode, m - monochrome mode
without cm will be used raw mode
Tags format: <#xy>, x - foreground color 0..f, y - background color 0..f
r - restore default color for foreground/background, s - skip, don't change foreground/background color
Example message string: "aaa<#e1>bbb<#s2>\nccc<#bs>ddd\neee<#rs>fff<#sr>ggg"
Usage: put MessageX.lua to modules folder
Call in scripts (example):
local MessageX = require'MessageX'
MessageX("aaa <#e2>bbb<#s1>\nccc<#bs> ddd\neee<#9s> fff <#sr> ggg <#ec>hhh","MessageX","&Ok;!Ca&ncel","wc","","",11)
v2.0.1.1 (11942 bytes, changed 2021-07-14 11:22)
SHA-256 203eee8dccd80457559ca486a5c49c48ef68de92d765fa1e59be4e1ecbfdfaa7
Panel files sorting by attributes
Keys: CtrlShiftF3 or from Menu "Sort by"
Tip: In the dialog all elements have prompts, press F1 for help
Url: https://forum.ru-board.com/topic.cgi?forum=5&topic=49572&start=2240#16
v1.1.0.2 (19285 bytes, changed 2021-07-14 10:19)
SHA-256 7a213a1997ff5e164bb6b927d764ebe351738537faa9cd9fa14d1668ae614880
Very powerful panel file sorting
Сортировки файлов в панели:
-
С вводом Offset при нажатии шорката, если вместо ввода числа нажать Enter, то будет использовано прежнее значение. Стартовое значение (по умолчанию) 0, т.е. обычная сортировка по имени.
-
C вводом Symbols аналогично п.1, значение по умолчанию "-_ ".
п.1 и п.2 с игнорированием символов - игнорируется то, что Майкрософт считает символами.
-
По группе цифр в имени файла с поиском в прямом, либо обратном направлении.
-
По подстроке, захваченной регэкспом. Регэкспы можно комментировать, в этом случае первую строку начинаем с -- (2-х минусов), далее комментарий, затем перевод строки и на второй строке пишем сам регэксп. Порядок сортировки можно изменить, добавив в конец регэкспа конструкцию {!:...}, где вместо ... указываем порядок возврата захваченных групп, например {!:$3$2$1}. Для поиска каждой группы по всей строке вне зависимости от их позиции, используется конструкция {?:pat1}{?:pat2}{?:pat3}{!:$3$2$1}, где patN - характерный паттерн группы, захватывается первый совпавший.
-
По функции пользователя. Примеры:
[x] Offset=0
[x] Func
by BOM
``` lua
-- by BOM
local efbbbf,fffe,feff,ffi,sub = '\239\187\191','\255\254','\254\255',require'ffi',string.sub
local C=ffi.C
local function bom(fp)
local res=0
local f=win.WideCharToMultiByte(ffi.string(fp,tonumber(C.wcslen(fp))*2),65001)
local h=io.open(f,"rb")
if h then
local s=h:read(3) or '' h:close()
if s==efbbbf then res=3 else s=sub(s,1,2) if s==fffe then res=2 elseif s==feff then res=1 end end
end
return res
end
return bom(_G.sFuncTbl.fp1)-bom(_G.sFuncTbl.fp2)
```
by BOM ffi
``` lua
-- by BOM ffi
local ffi = require'ffi'
local C = ffi.C
local NULL = ffi.cast("void*",0)
local ibuf=ffi.new"unsigned char[3]"
local mode_in = "\114\0\98\0\0" -- "rb" UTF-16LE..'\0'
local function bom(fp)
local res=0
local f_in=assert(C._wfopen(ffi.cast("wchar_t*",fp),ffi.cast("wchar_t*",mode_in)))
if f_in~=NULL then
ffi.fill(ibuf,3)
local n=C.fread(ibuf,1,ffi.sizeof(ibuf),f_in)
C.fclose(f_in)
local n,b0,b1,b2 = tonumber(n),tonumber(ibuf[0]),tonumber(ibuf[1]),tonumber(ibuf[2])
if n==3 and b0==0xef and b1==0xbb and b2==0xbf then res=3
elseif n>=2 then
if b0==0xff and b1==0xfe then res=2
elseif b0==0xfe and b1==0xff then res=1
end
end
end
return res
end
return bom(_G.sFuncTbl.fp1)-bom(_G.sFuncTbl.fp2)
```
by FullPath length
``` lua
-- by FullPath length
local ffi = require'ffi'
local C=ffi.C
return tonumber(C.wcslen(_G.sFuncTbl.fp1))-tonumber(C.wcslen(_G.sFuncTbl.fp2))
```
by FileName length
``` lua
-- by FileName length
return _G.sFuncTbl.ln1-_G.sFuncTbl.ln2
```
by level Folder
``` lua
-- by level Folder
local ffi,BS = require'ffi',[[\\]]
local C=ffi.C
local _,x1 = regex.gsubW(ffi.string(_G.sFuncTbl.fp1,tonumber(C.wcslen(_G.sFuncTbl.fp1))*2),BS,"")
local _,x2 = regex.gsubW(ffi.string(_G.sFuncTbl.fp2,tonumber(C.wcslen(_G.sFuncTbl.fp2))*2),BS,"")
return x1-x2
```
by HEX in FileName
``` lua
-- by HEX in FileName
local ffi,RE,huge,gsub = require'ffi',regex.new'[0-9A-Fa-f]+$',math.huge,string.gsub
local C=ffi.C
local function p(s)
local num=huge
local fp=ffi.string(s,tonumber(C.wcslen(s))*2)
local hex=RE:matchW(fp)
if hex then num=tonumber(gsub(hex,'\000',''),16) end
return num
end
return p(_G.sFuncTbl.fp1)-p(_G.sFuncTbl.fp2)
```
Keys: CtrlShiftF3 or from Menu "Sort by"
Tip: In the dialog all elements have prompts, press F1 for help
Url: https://forum.ru-board.com/topic.cgi?forum=5&topic=49572&start=2240#16
v1.0.0.1 (1008 bytes, changed 2020-08-20 20:43)
SHA-256 41ceda1e697108c79e9b95525ad5a4f13f07e7c007f712080846b491c5396bac
Custom panel file sorts: by Name with StrCmpLogicalW, by FullPath length
Keys: CtrlShiftF3 or from Menu "Sort by"
v1.0.0.2 (2751 bytes, changed 2021-08-10 21:12)
SHA-256 1267a5362b2d63d09bf74d450a621d8cbd98c6021193735d7243046c466b32bc
(un)HEX selected files, VERY FAST!
Keys: launch from Macro Browser alt.
author Shmuel, co-author AleXH
v1.0 (2687 bytes, changed 2020-04-09 09:55)
SHA-256 2f4009b51874478fcf9b5acf75190239e6306c0073aead8a8b5eb9b8db3bd261
Extended lynx-motion style
Very convenient navigation in panels with elevators through empty subfolders and etc.
Keys: Left Right Enter
v1.0.3 (3225 bytes, changed 2021-06-08 06:43)
SHA-256 ff22e3edee8ad10c0e3cb8e404a54d060a4168f232a211c023bb804df3233d1c
Album Player (APlayer) radio station files converter *.rad,*m3u<=>FolderName.m3u
Actions:
-
M3U: creating a common playlist from RAD and M3U files in a folder and subfolders
-
RAD: to create RAD and M3U files with folders and subfolders from the common playlist, place the cursor on the playlist and press F2
Keys: F2
v1.3 (5653 bytes, changed 2020-05-21 07:09)
SHA-256 05ee4feb9c45b70acf9880455b9052ef0cda666278a89d124a165d2067160ca5
Selection files with BOM
Keys: launch from Macro Browser alt.
Url: https://forum.ru-board.com/topic.cgi?forum=5&topic=49572&start=2280#12
v1.3.2.5 (11534 bytes, changed 2020-08-20 20:44)
SHA-256 85bab92630c25fa700c2b19bf864c6b1dc1852329514eff28906767d79dd468c
Select Duplicates File Names in Branch panel with complex logic
Keys: launch from Macro Browser alt.
Tip: In the dialog all elements have prompts, press F1 for help
v1.0.0.1 (2107 bytes, changed 2021-05-17 11:28)
SHA-256 a241b97e3bc46f897e554e9b14735b24847457895d2d7fdbc6fbb02a32953676
Extend Select Folders/Files Dialog
Keys: Grey+ Grey- CtrlF
v1.3.4.0 (4537 bytes, changed 2021-11-30 11:47)
SHA-256 dc009dbb1ae9451ac9a976696408ec22ac699dfe75e5c9e47cfff7ed4384b88d
Extend Panel (Shift)?F[56] Dialog
Hint: Press CtrlR and set replace [x] data for copy the source file to the target file with multiple hardlinks
Required: FAR3 build >= 5467
Keys: none, to use put in the scripts folder
v1.9.0 (9194 bytes, changed 2021-03-31 17:17)
SHA-256 83a1d956dbf0eb0adb8dc24597868e77bb34a872c3febf0b844ee3814e8a1487
Visual Compare files or folders for panels: Files, Branch, Temporary, Arclite, Netbox, Observer, TorrentView.
Note: if more than two files are selected on the active panel for comparison, the AdvCmpEx plugin will be called.
Keys: CtrlAltC
The Exchange of lines between files
Keys: Ins / Del - insert / delete line in active file, F5 / F6 - copying with insertion / substitution line
Keys: AltLeft / AltRight - copy line from right file to left file and vice versa
Url: https://forum.ru-board.com/topic.cgi?forum=5&topic=49572&start=2080#6
v1.4.2.1 (3735 bytes, changed 2021-07-12 18:29)
SHA-256 027d2b4124bf17495219021ba11f3a9dd2e22e5818c6bc5e10cfe45c7fc454d0
Comfortable Grep text from files by search pattern to editor
Press AltG, MacroBrowserAlt.lua file will be opened in the editor and the cursor will be set to this position on hDlg.
Actions:
-
Grep: ♥ Goto this line in this file
-
Grep: ♦ Save this line in this file
-
Grep: ♣ Save all lines in this file
-
Grep: ♠ Save all lines in all files
Required: plugin RESearch or LFSearch
Keys: AltG
Url: https://forum.ru-board.com/topic.cgi?forum=5&topic=49572&start=2600#19
v1.0.1 (2992 bytes, changed 2020-06-20 09:14)
SHA-256 df78566a3629554de8d67b05feb9aa424db60357acf45db06e9894b85ef3fabd
Create btpolicy.xml for uTorrent, with priority peering zone (example for Belarus users)
Keys: launch from Macro Browser alt.
v1.0.5 (3066 bytes, changed 2021-07-08 14:26)
SHA-256 721584597be8e246ea1a5494ff3b25e41f663558f8b0eccba6f4a2d3f1d79ea1
Combining free, frequently updated iptv sheets into one My.m3u, duplicate links removed
Launch: in cmdline Far.exe: lua:@iptv.lua, or lfjit.exe iptv.lua, or lflua.exe iptv.lua
v1.0 (629 bytes, changed 2021-05-21 06:55)
SHA-256 c6246876a21e863f923078f14fae50eb075506818e2bca483f3626bd2d60f130
author Shmuel, 28.05.2020
copy to folder included Moonscript files and run it: lua:@moon2lua.lua
all Moonscript files will be deleted after convert!
linux shell scripts - sh, bash, dash, sash & etc.
21706 bytes, changed 2022-02-13 11:08
SHA-256 aa5918fc7b3db42dd7008964b4bb27d2b6644ebd53d4b242856825f4c3296665
Bash script - interface for Album Player Console
Commands:
h - help, e - exit, x - exit with save path
. - play all music files in folder, just Enter - repeat last command
l - list files in folder, a/z - show previous/next 100 files
c<num> - convert file to /tmp/out.wav, v<num>/u<num> - view ansi/utf-8 file
<num> - play file <num>, p/n - play previous/next file, after Enter Enter ...
<num>.<num>:<num> or <num>:<num> - play file number <num> from min:sec
<num>.<num> or .<num> - play file <num> from track number <num>, if cue sheet loaded
s - stop playback, r - return on jump history, after Enter Enter ...
ro<num>/rw<num> - remount FAT partition as read only/writable, available in /media folder only
cp<num> - copy file to /media/flash, mv<num> - move file, rm<num> - remove file
ap - show active player, ap0 - use auto select player, ap1/ap2 - use player without/with timeshift
i - show name played file and info about it, i<num> - show info about file
t - show time and playing time, tr - reset playback time