Zotaveni po padu

Vetsina z vas tu situaci nepochybne zna. Pracujete na textu hodinu, dve. A pak vam vypnou proud. Teprve v tom okamziku si uvedomite, jak dlouha doba uplynula od jeho posledniho ulozeni. Clovek v takove chvili zpravidla vykrikuje slova, ktera zde nehodlam citovat. Pokud vsak pouzivate vim
Nepropadejte panice!
vim si totiz behem vasi prace neustale udrzuje tak zvany pracovni soubor (swap file). Do nej si dela poznamky o vasi cinnosti. Na zaklade ulozene podoby textu a tohoto pracovniho souboru dokaze velmi dobre zrekonstruovat editaci, ktera skoncila nekorektne (vypnuli proud, zhroutil se sytem a podobne). Utpene ztraty zpravidla nepresahnou jeden radek.

Pracovni soubor

Jmeno pracovniho souboru se shoduje se jmenem souboru editovaneho, k nemuz je pripojena pripona .swp. V Unixu se navic pred jmeno pridava tecka, aby nestrasil pri vypisu seznamu souboru. Pokud ma system souboru omezenou delku jmena (popularni 8+3 v MS DOSu), budou dosavadni tecky ve jmene nahrazeny podtzitky a vysledek pripadne zkracen a zjednoznacnen.

Pracovni soubor je zalozen automaticky pri zahajeni editace souboru a zrovna tak automaticky se po jejim uspesnem ukonceni zlikviduje. Nemusite se o nej vubec starat, vim si vse zajisti sam.

Implicitne je vytvoren ve stejnem adresari, jako editovany soubor. Nelibi-li se vam takove chovani, muzete adresar pro pracovni soubory nastavit pomoci :set directory=adresar.

Aktualni stav editace se do pracovniho souboru zaznamena, kdyz bud ctyri vteriny nenapisete zadny znak (lze nastavit volbou updatetime, zadejte hodnotu v milisekundach) nebo jste napsali 200 znaku (ovlivnuje volba updatecount).

Take si muzete kdykoli dupnout a ulozit aktualni stav editovaneho textu do pracovniho souboru prikazem

:preserve
Jakmile jej provedete, nebude jiz puvodni soubor k pripadnemu obnoveni potrebny. Vsechny informace si editor najde v pracovnim souboru.

Obnoveni

Pri zahajeni editace souboru si vim stanovi jmeno odpovidajiciho pracovniho souboru a podiva se, zda nahodou neexistuje. Pokud jej najde, signalizuje to, ze se stalo cosi nepatricneho. Proto vas upozorni hlasenim
ATTENTION
Found a swap file by the name ...
K takove situaci mohlo dojit v zasade ze dvou duvodu:
  1. Jiny exemplar vim pracuje na tomtez souboru. V takovem pripade doporucuji nove spusteny editor zase pekne ukoncit a upravy realizovat v tom drive bezicim.
  2. Zadny dalsi exemplar nebezi, ale minula editace dopadla tvrde a na zada.
Nas zajima druhy pripad, kdy je treba provest resuscitaci souboru, jehoz editace skoncila zhroucenim. Klasickou reakci je ukoncit editor a okamzite jej spustit znovu, ovsem navic s parametrem -r (recover), kterym prikazete vzkrisit padly soubor - napriklad
vim -r dopis.txt
Pohodlnejsi (a tudiz mnou preferovanou) cestou je reagovat na vyse zminovane upozorneni o existenci pracovniho souboru lakonickym pouzitim prikazu
:recover
V obou pripadech byste se meli ocitnout v editacni seanci zhruba v takovem stavu, ve kterem byla nekorektne ukoncena. Doporucuje se nyni soubor ulozit pod jinym jmenem a prostrednictvim prikazu diff (v MS DOSu fc) nebo podobneho jej porovnat s puvodnim textem. Budete-li spokojeni (ja jsem pokazde byl), smazte puvodni i pracovni soubor, zachranenemu dejte jeho puvodni jmeno a pokracujte v editaci.

Spetka plamenu

Vsimnete si, ze vim dela presne to, co clovek potrebuje. Zcela nenapadne, aniz by o tom uzivatel vedel a aniz by to znatelne zasahovalo do jeho prace, si dela poznamky o tom, co se delo. Ozve se jen v pripade, ze zjisti problem (existujici pracovni soubor pri zahajeni editace).

Naproti tomu bezne editory resi stejny problem periodickym ukladanim textu, coz ani zdaleka neni totez. Ukladaji vetsi objem dat a to casto vede k viditelnemu zpozdeni v cinnosti editoru. Navic pokud si po hodine prace usmyslite, ze jste vyrazili slepou ulickou a nejlepsi bude vratit se k puvodni verzi souboru, mate smulu. Text byl mezitim nekolikrat ulozen. Takovou situaci si necucam z palce, parkrat se mi to stalo.

Mimochodem - behem nekolika let pouzivani vim nepamatuji, ze by se editor sam o sobe nekdy zhroutil.

<-- predchozi  [obsah]  dalsi -->
© 1997, 1998 Pavel Satrapa