Érvénytelen karakterkódolású fájlnevek kivédése Emaccsal

Az informatikai kultúrát sajnos az iwiwezésből nem lehet elsajátítani, de mit is beszélek!, legyünk haladó szelleműek, a fájlnevek igenis kezdődhessenek három szóközzel, tartalmazhassanak tetszőleges unikód karaktert, zárójellel csoportosíthassunk kedvünkre a betűket és így tovább, a konzervatív fájlnév konvenciójukhoz ragaszkodó kopaszodó informatikusok pedig menjenek csak a Szimplába, és egy (kettő) sör mellett sírják el bánatukat. Ha te, nyájas olvasóm, ennek most felültél, akkor csókolom a kezeidet, és tiszta szívemből kívánom, hogy életed értékes percekkel rövidítsék meg azok a feledhetetlen pillanatok, amikor a vegyes kódolású karakterhalmazból próbálsz meg egy normalizált stringet produkálni, amin nem hasal el az eszközök zöme.

Érvénytelen kódolású karakterek terminálban

Javarészt ezidáig a safename fedőnevű skriptben összefogott replace rutinok hada segített át a fennebb említett pillanatokon, amely kiválóan kezelte a legtöbb esetet, azonban már nem UTF-8 kódolású adatcsokornál bohóckodni kellett, hogy a script felé az mégis UTF-8-ként jelenjen meg – kényelmetlen.

Minap fedeztem fel az Emacsban (az Emacs csupa meglepetés!), hogy a dired mód menüjében szerepel egy Edit file names menüpont, amely a háttérben a wdired-change-to-wdired-mode-ot hívja meg. A mode szerkeszthető tartalmú pufferként nyitja meg újra az aktuális könyvtárat*, így a továbbiakban az egyszerű szövegként kezelhető, végrehajthatók rajta tetszőleges Elisp kódok. A legkényelmesebb benne pedig, hogy az Emacs 23-mal érkező kimunkált karakterkódolási környezet (coding system) leveszi a vállunkról az össze-vissza karakterkódolások kezelésének terhét. Installálom!


* A kézikönyv szerint: ‘Put a dired buffer in a mode in which filenames are editable.’