Hirdetés

Far Manager - Lua

A Far Manager 3. verziójának nagy újdonsága a beépített Lua nyelvi támogatás volt: az alkalmazás szinte minden rétegében futtathatóvá váltak a Lua programocskák, legyen az akár fájlnév beviteli-mező (pl. Backup-?os.date("%Y-%m-%d")?.zip), hotkey, macro vagy plugin.

Munkám kapcsán jelentős számban készítek szövegeket, melyeket a végén magyar nyelven kiírt hónapnévvel ellátott dátummal kell ellátni, így ennek automatizálását terveztem a hétvégére. Makrót készíteni azonban oly egyszerű, hogy már péntek délutánra kész lett:

%FARPROFILE%\Macros\internal\CurrentDate.lua
(ebbe a könyvtárba kerülnek a felhasználói szkriptek, UTF8 karakter-kódolással)

Macro {
description="Inserts current date";
area="Editor";
key="CtrlShiftF5";
flags="";
action=function()
monnames = { "január", "február", "március", "április", "május", "június", "július",
"augusztus", "szeptember", "október", "november", "december" }
now = os.date("*t")
print(now.year .. ". " .. monnames[now.month] .. " " .. now.day .. ".")
end;
}

Far Manager - view:, edit:, tmp: és egy további trükk

A view:, az edit: és a tmp: a Far nézegető, szerkesztő és temp-panel moduljának nevei, melyek segítségével azokra tetszőleges tartalom irányítható át. Így

view:<dir
edit:<dir
tmp:<dir /B

Ez utóbbi esetben a /B azért szükséges, mert alapértelmezésben a temp-panel elemeinek valós fájlokra kell mutatniuk, de a dir parancs túl bőbeszédű. Ez a kitétel a +any paranccsal megkerülhető, de az eredmény - jelen esetben - érdekes lesz:

tmp:+any<dir

Mindezek segítségével könnyen elkészíthető egy primitív GUI pl. egy nem támogatott archiváló programhoz is:

.arc fájlokhoz hozzárendelt View parancs: view:<arc.exe lb "!.!"
.arc fájlokhoz hozzárendelt Execute parancs: tmp+any<arc.exe lb "!.!"

Az Edit parancsra pedig mehet a kicsomagolás, egy további trükkel megspékelve

arc.exe x -dp!?Destination:?! "!.!"

Far Manager - meghajtófüggetlen programindítás

Sajnos az utóbbi időben egyre gyakrabban fordult elő, hogy a munkahelyen megkezdett munka csak otthon került befejezésre illetve a hétvégén megkezdett munkát a munkahelyen folytattam. A két számítógép közötti adathordozást egy WD Passport külső merevlemez végezte, melyre egy idő után az adatok mellé a használt alkalmazások is felkerültek, hogy mindkét helyen a megszokott munkakörnyezet álljon rendelkezésre.

Kényelmetlennek és kevéssé elegánsnak találtam viszont azt, hogy a lemez csatlakoztatása után keresni kell a meghajtót, a könytárakat és az exe fájlokat: lelki szemeim előtt felrémlett a meghajtó betűjelétől függetlenül a felhasználói menüből indítható portable szoftverek megható képe.

A megoldás pedig: wmic - a Windows alaprendszer részét képező, admin jogosultságok nélkül is használható, sql-szerűen paraméterezhető interfész a lemezkezelő szolgáltatáshoz.

Kérek egy csv listát azokról a meghajtókról, melyek volume-neve egyezik a külső meghajtóéval:

Far Manager - UTF8 kódlap induláskor

Állandó probléma, hogy a Windows command processor (aka cmd) alapértelmezett kódlapja nem állítható be könnyedén és főleg nem unicode készletre. Erre az alábbi megoldást találtam:

ctrl+. (makró felvétele)
chcp 65001 (utf8 kódlap)
ctrl+shift+. (makró mentése opciókkal)
billentyűparancs és jellemzés felvitele
majd az opciók közöt az "Execute after Far start" beállítása.

A program újraindítása után tesztelhetjük:

> chcp
Aktív kódlap: 65001

A .cmd/.bat fájlok létrehozásakor csak arra kell figyelni,hogy BOM nélküli UTF8 legyen a kódolás.