ViFM fájl átnevezés

Vim alapokA ViFM egy nagyon kellemes, gyors fájlkezelő. Sokan nem szeretik, illetve nem ismerik, így készítettem régebben egy kis bemutatót róla. A ViFM és sok egyéb fájlkezelő egyik nagyon hasznos tulajdonsága a Vim stílusú működés. Ami nem merül ki a billentyűkombinációkban, hanem lehetőséget ad a fájlnevek szerkesztésére is a Vim programmal. Így az átnevezés gyors és hatékony művelet lehet, ha ismerjük a Vim működését. Pár alapvető feladatot érdemes megtanulni, ha tömegesen szeretnénk fájlokat átnevezni. Pár alapvető példát mutatok be, de előtte az alapok.

ViFM átnevezés parancsai

A kijelölt fájlokat lehet átnevezni. Ami lehet a kurzor alatti fájl, vagy ha többet akarunk a Space-vel kijelöltek.

gu a kurzor alatti fájl nevét végig kisbetűssé alakítja
gU a kurzor alatti fájl nevét végig nagybetűssé alakítja

Ha kétpanelos megoldást használsz, akkor a másikban megjelenik a súgó, így a lehetőségeket látni fogod.

Ez alapvetően nem egy túl nagy megoldás, így talán a fájlátnevezésnél a

cW a kurzor alatti fájl kiterjesztés nélküli átnevezése

jobb megoldás lehet. Ilyenkor a panel alatt jelenik meg a fájl név és simán szerkesztheted. Ez az alap megoldás, ami nagyon jó, de én nem igaz használom, ha több fájlt kell átneveznem. Sokkal egyszerűbb, gyorsabb és hatékonyabb az összes átnevezendő fájlt kijelölni, majd a Vim-el szerkeszteni.

ViFM beállítása Vim-hez

Vagy az export EDITOR=”vim” beállítást használod a .profile fájlban, vagy a ViFM indítása előtt ezt a parancsot lefuttatod. Ilyenkor a terminál bezárásáig a vim lesz az alapértelmezett editor.
Ez alapvetően jó megoldás, de a EDITOR változó megadása más, ugyanezt a változót használó programot is befolyásolja. Ha nem szeretnéd folyamatosan a Vim-et használni, akkor jó megoldás csak a ViFM konfigurációjában megadni az editort. A set vicmd= sorban adhatod meg ezt. A konfigurációs fájl pedig a saját könyvtáradban a .config/vifm/vifmrc lesz.
Mindenképp – ha nem a Vim az alapértelmezett – meg kell adni, mert a tömeges átnevezés nem fog jól működni másik szerkesztővel!

A tömeges átnevezés

A ViFM alatt ezt a cw paranccsal érheted el. A kijelölt fájlok neve bekerül egy listába, amit a Vim megnyit. Már nincs is egyéb teendő, csak át kell írni.

A sima átnevezés nagyon egyszerű, átírod, majd „lemented” a fájlt. A beíráshoz az i insert parancs kell, a kilépés a normál módban a ZZ paranccsal történik. Bár mindegyikhez van más is, de én így használom, erre áll rá a kezem. Ha nem akarod megtartani a változtatásokat, akkor is szabályosan lépj ki :q! paranccsal. Nem volt gondom eddig azzal sem, ha magát a terminált csuktam be szerkesztés közben, de szokjuk meg az elegáns, szabályos módszereket.

A tömeges átnevezésnél sok esetben egy elő, vagy egy utótagot füzünk a fájlhoz, illetve egy részt írunk át. Ezt – bár sok egyéb megoldás is jó lehet – én a keres és csere módszerrel szeretem megoldani.

Ez alól két kivétel van. Az egyik a lehető legegyszerűbb megoldással a fájlkiterjesztés nélküli nevekhez kiterjesztést adok:

:%norm A.txt hozzáadja a.txt kiterjesztést.

Ami simán annyi, hogy „minden sor végére adj hozzá” azaz :%norm A lehetőséget kihasználom. A másik lehetőség ennek az ellentettje, az elejére illesztünk be:

:%norm Iakármit ami a fájlnév elé beszúrja a akármit szót.

A keresés és csere a ViFM, pontosabban a Vim alatt egyszerű:

:%s /mit/mire/g

A % adja, hogy az egész szövegben. A g a végén, hogy az összes találatot ki kell cserélni.

Ha valamit törölni akarsz, akkor hasonló a megoldás:

:%s /mit//g

Sok esetben a fájlnévben van a zárójelbe rakott szöveg is, amit esetleg el akarsz tüntetni:

:%s /(\(.*\))//g

Ha a zárójel más típusú, akkor a két szélső zárójelet cseréld le arra a típusra. De hasonlóképp működik az idézőjelek stb. és a közte lévő szöveg eltüntetése is.

Maga a szintaktika egyértelmű, ha tudjuk, hogy a \(.*\) karaktersor adja a „bármi lehet itt” megnevezést, és a két határoló, jelen esetben a () pedig a tól-ig határt.

Ha egy jelig, karakterig akarod eltüntetni:

:%s /\(.*\)+//g

Kiszedi az elejétől az összes karaktert a plusz jelig.

Egyéni döntések a ViFM fájlátnevezésében

Sok fájlnév tartalmaz zárójeles részt, amit az előbbi módszerrel kiszedhetsz, de csak az összeset. Ha nem akarod mindet kiszedni, csak egyeseket, akkor már több manuális munka kell, de ez is felgyorsítható. A Vim ismer egyfajta Word Text Objects típusokat, melyek egy-egy szövegkategóriát jelképeznek.

Itt található a hivatkozások listája:

szavak : iw és aw
mondat : is és as
bekezdések : ip és ap
egyetlen idézőjeles idézet : i’ és a’
kettős idézetek : i” és a”
zárójel : i( és a(
zárójel szögletes : i[ és a[
kapcsos idézőjelek : i{ és a{
címkék : it és at (html-ben pld.)

Az i azt jelenti, hogy maga a belső rész, azaz a i( a (minta) részben a minta, az a pedig az a( jelben annyit tesz, hogy az egész (minta). Oké, ezek közül csak pár releváns van jelenleg, ami egy fájlnévben szerepel, de nem árt egyszer átnézni a lehetőségeket.
Mire is használható ez?

Ha van egy olyan fájlnév, ami ez(fájl)__(név)akarmi.txt és csak az egyik zárójelet és a benne lévő szöveget akarod eltüntetni, akkor odanavigálsz a zárójelbe és da( és máris eltűnt. A a törlés parancsa.

A következő fájlban, ha ott is van olyan zárójeles rész, amit el kell tüntetni, akkor odanavigálsz és . Igen, a pont megismétli az utolsó parancsot. Villámgyorsan több tucat fájlból kiszedheted a feleslegesnek ítélt részt. A sebesség kizárólag a navigálási gyorsaságodtól függ.

Bonyolult?

Igen az. Az első pár alkalommal igencsak megbántam, hogy nekiálltam. Mindent apró lépést googlizni kellett, majd igazgatni rajta, hogy olyan legyen, ami nekem kell. Miután kisebb gyakorlatot összeszedtem, már gyorsult a munkafolyamat.
Amit érdemes tudni: ha van olyan folyamatosan előkerülő hosszabb csere feladat a fájlnevekben azt érdemes egy szövegfájlba menteni, mert a Vim természetesen ismeri a beillesztést is. Nagyon kelleme, ha nem akkor kell gépelgetni, amikor valamit gyorsan el kell végezni.

Related Posts