Midnight Commander menüfájl szintaxis

Alább egy rövid leírás a Midnight Commanderben az Eszközök menüpont Menüfájl szerkesztése menüpontjával elérhető menüfájl szintaxisáról, amely menüt az F2 gombbal lehet előcsalogatni.

A leírás az mc kézikönyvére épül, amiből érdemes átfutni a Menu File Edit, illetve Menü szerkesztés című fejezetet.

A menüfájlban a sor első betűje lesz a gyorsbillentyű az adott menüponthoz. Utána az mc-vel szállított alapértelmezett fájlban egy tabulátor karakter következik, majd a menü neve. Nem feltétlenül muszáj ezt a szokást követni, a tabulátor karakter kimaradhat, de így valamivel kulturáltabban néz ki.

Az ezután következő, kötelezően szóközzel vagy tabulátorral kezdődő sorok lesznek a menü kiválasztásakor végrehajtandó parancsok. Ezeket az mc futtatás előtt kimásolja egy ideiglenes fájlba, amit a/tmp mappában helyez el és ott shell szkriptként futtat. Így használhatóak a szokásos shell szkript funkciók.

Ezeken kívül további lehetőség a szkriptekben a %f, %F, %d, %D, %t, %T helyettesítő karakterek használata. A %f az aktuálisan kiválasztott fájl nevét, a %d az aktuális könyvtár nevét, a %t az összes kijelölt (tagged) fájl nevét fogja tartalmazni. A nagybetűs változatuk a másik panelre vonatkozik. Még ezen kívül van néhány, érdemes megnézni az mc dokumentációját (Macro Substitution, illetve Makro helyettesítő).

A menüpontok nevei előtt meg lehet adni további feltételeket, amelyek eldöntik, hogy a menüpont megjelenhet-e a menüben, illetve alapértelmezett legyen-e. Ha nincsenek ilyen feltételek, akkor a menüpont mindig megjelenik.

A megjelenési feltételeket plusz jellel (+), az alapértelmezetté tételhez szükséges feltételeket pedig egyenlőségjellel (=) kell kezdeni.

Ezekben a feltételekben az f, d és t karaktereket használhatjuk. Az f-fel a fájl nevére vonatkozó kényszereket lehet megadni, például:

= f *.tar.gz | f *.tgz

Itt a *.tar.gz és a *.tgz shell minta, a helyes működéshez a menüfájl első sorában a

shell_patterns=1

beállításnak kell szerepelnie. Ha ez az érték nulla, akkor reguláris kifejezéseket kell megadnunk, ami így néz ki:

= f \.tar\.gz$ | f \.tgz$

A d karakter ugyanez, csak könyvtárnevekre, a t pedig a fájl tulajdonságaira vonatozik (fájl-e, könyvtár-e, olvasható-e stb.).

Ha az aktuális elem könyvtár:

= t d

Ha vannak kijelölt fájlok a panelen:

= t t

A kétfajta feltételt össze is lehet vonni (+= vagy =+), ilyenkor egy sorban megadható a megjelenítéshez szükséges feltétel, ami egyben alapértelmezetté is teszi a menüpontot.

Hibakeresésre alkalmazható a +? és az =?, ilyenkor minden feltétel kiértékelése után az mc megjeleníti az eredményt egy ablakban.

Ha kiértékelt feltételek alapján több menüpont is aktuális lehetne, akkor (nálam) az elsőt választja az mc.

Mellékletek:

Tartalom átvétel