Bizonyára mással is előfordult már a következő eset: hazaérsz esti foci után, s mivel aludni még nem tudsz, nekilátsz gyorsan megírni a következő bejegyzést a Drupal-alapú belső kézikönyvbe. Aztán kiderül, hogy a bejegyzés elkészítése kissé elhúzódik, mert kell hozzá 3 Konsole-fül, egyikben-másikban némi PHP kód Vimben, egy OOo.Calc, meg két további Firefox fül - s a nagy ide-oda váltogatás között, a bejegyzés 90%-ának elkészítése után véletlenül a Firefox szövegmezőjében nyomsz egy Crtl+R-t redo, azaz Ctrl+Y helyett. Eredmény: káromkodás, és a teljes bejegyzés elvesztése.
Létezik megoldás - két biztonsági övről is írok alább.
Legelső ötlet a Vim billentyűinek átállítása: legyen a Ctrl+R helyett mondjuk az amúgy szinte soha nem használt Ctrl-Y a redo - már csak azért is, mert a Firefoxban is ott lakik, és annak átállításához lényegesen több doksin kéne átrágnod magad. Ehhez a következő három sorra van szükség a ~/.vimrc
fájlba:
Az első két sor átmásolja a Ctrl+R funkcionalitását a Ctrl+Y kombinációra is, az utolsó pedig megszünteti a Ctrl+R hatását.
A másik, talán még egyszerűbb/triviálisabb ötlet: automatikus mentés a Drupal tartalombeküldő és -szerkesztő űrlapjára. És igen, nem mi találtuk ki ezt sem, sőt, Edmund Kwok meg is írta az Autosave modult, ami ezt, és csak ezt csinálja. Beállítható, hogy milyen időközönként mentse az űrlapot AJAX mágiával, majd amely tartalomtípusnál bekapcsoltuk, szépen teszi a dolgát anélkül, hogy a munkát bármilyen mértékben zavarná: a beállított időközönként a képernyő alján megjelenik egy-egy üzenet, hogy az űrlapot elmentette. A visszaállítás még egyszerűbb: az adott Drupal path-t meglátogatva ha talál saját maga által mentett adatot, akkor ugyanott felajánlja a figyelmen kívül hagyását, vagy használatát - s ekkor jön a mágia: mégsem veszett el a munkád!
Így aztán nemcsak a hajhullást, de a családod éjjeli hangos káromkodással való felébresztését is elkerülheted.
Hozzászólások4
vimpertor
Még egyszerűbb feltelepítened a Vimperátort Firefoxhoz, és a megszokott vimes gyorsbillentyűket használhatod a böngészőben.
Megvolt az is
Rövid úton ment is a levesbe: nem csak a szövegmezőket alakítja vim-like editorrá, hanem az egész böngészőt átalakítja - amire nem bírt ráállni az agyam.
It's All Text
Persze, hogy nem csak a szövegmezőket alakítja azzá, pont az benne a lényeg, hogy a megszokott gyorsbillentyűkkel navigálhatod a böngészőt is. Az egy rossz megoldás szerintem, hogy egy probléma miatt az editorod alapvető gyorsbillentyűit írod át. (Mellékesen a Vimperatort nem ismerem, de az emacsos párja képes arra, hogy csak a beviteli felületeken bírálja felül a gyorsbillentyűket.)
Próbáld ki akkor még az It's All Text-et. Ez a kiterjesztés tetszőleges editort csatol a szövegdobozokhoz – így ténylegesen Vimben dolgozhatsz, mentheted akár a tartalmát, de ha véletlenül Firefoxban elnavigálsz az oldalról, az editorban akkor is megmarad a tartalmad.
Ez sem feltétlenül butaság
Két "apró" problémám van csupán vele.
Egyrészt külön wrappert kell írjak, hogy a vim használhatóan induljon el (nem, a gvim az nem vim: még a módosított billentyűkombinációkat se javítja át a menüjében, a hosszú sorokat is másképp tördeli, a többi különbségről nem is beszélve).
Másrészt a Drupal által nyújtott egyéb, "szöveg"bevitelt segítő szolgáltatásokról (WYSIWYG-szerű editor, filefield_insert, stb. le kell mondanom - magyarul többet veszítek, ha használom, mint nyerek. Igaz, attól, hogy feltelepítem, (a vimperatorral szemben) még nem kötelező használni is, ami mellette szól.
Egyelőre tehát marad a fenti két megoldási lehetőség egyszerre történő alkalmazása - mindazáltal köszönöm, hogy felhívtad ezekre is a figyelmemet.