Zotavení po pádu
Většina z vás tu situaci nepochybně zná. Pracujete na textu hodinu, dvě. A pak vám vypnou proud. Teprve v tom okamžiku si uvědomíte, jak dlouhá doba uplynula od jeho posledního uložení. Člověk v takové chvíli zpravidla vykřikuje slova, která zde nehodlám citovat. Pokud však používáte vim
Nepropadejte panice!
vim si totiž během vaší práce neustále udržuje tak zvaný pracovní soubor (swap file). Do něj si dělá poznámky o vaší činnosti. Na základě uložené podoby textu a tohoto pracovního souboru dokáže velmi dobře zrekonstruovat editaci, která skončila nekorektně (vypnuli proud, zhroutil se sytém a podobně). Utrpěné ztráty zpravidla nepřesáhnou jeden řádek.
Pracovní soubor
Jméno pracovního souboru se shoduje se jménem souboru editovaného, k němuž je
připojena přípona .swp
. V Unixu se navíc před jméno přidává tečka,
aby nestrašil při výpisu seznamu souborů. Pokud má systém souborů omezenou délku
jména (populární 8+3 v MS DOSu), budou dosavadní tečky ve jméně nahrazeny
podtržítky a výsledek případně zkrácen a zjednoznačněn.
Pracovní soubor je založen automaticky při zahájení editace souboru a zrovna tak automaticky se po jejím úspěšném ukončení zlikviduje. Nemusíte se o něj vůbec starat, vim si vše zajistí sám.
Implicitně je vytvořen ve stejném adresáři, jako editovaný soubor. Nelíbí-li se
vám takové chování, můžete adresář pro pracovní soubory nastavit pomocí
:set directory=adresář
.
Aktuální stav editace se do pracovního souboru zaznamená, když buď čtyři
vteřiny nenapíšete žádný znak (lze nastavit volbou
updatetime
, zadejte hodnotu v milisekundách) nebo
jste napsali 200 znaků (ovlivňuje volba
updatecount
).
Také si můžete kdykoli dupnout a uložit aktuální stav editovaného textu do pracovního souboru příkazem
:preserve
Jakmile jej provedete, nebude již původní soubor k případnému obnovení potřebný. Všechny informace si editor najde v pracovním souboru.
Obnovení
Při zahájení editace souboru si vim stanoví jméno odpovídajícího pracovního souboru a podívá se, zda náhodou neexistuje. Pokud jej najde, signalizuje to, že se stalo cosi nepatřičného. Proto vás upozorní hlášením
POZOR Nalezen odkládací soubor se jménem ...
K takové situaci mohlo dojít v zásadě ze dvou důvodů:
Jiný exemplář vim pracuje na tomtéž souboru. V takovém případě doporučuji nově spuštěný editor zase pěkně ukončit a úpravy realizovat v tom dříve běžícím.
Žádný další exemplář neběží, ale minulá editace dopadla tvrdě a na záda.
Nás zajímá druhý případ, kdy je třeba provést resuscitaci souboru, jehož
editace skončila zhroucením. vim rovnou nabízí možnosti, jak
pokračovat. Můžete zahájit editaci, jako by se nic nestalo (E
), otevřít soubor v režimu pouze ke čtení (O
) nebo editor ukončit (Q
).
Nejužitečnější ale bývá nařídit, aby se vim pokusil obnovit stav před
pádem (R
).
Měli byste se ocitnout v editační seanci zhruba v takovém
stavu, ve kterém byla nekorektně ukončena. Doporučuje se nyní soubor uložit pod
jiným jménem a porovnat (například prostřednictvím příkazu :diffsplit
) s původním textem. Budete-li spokojeni (já
jsem pokaždé byl), smažte původní i pracovní soubor, zachráněnému dejte jeho
původní jméno a pokračujte v editaci.
Špetka plamenů
Všimněte si, že vim dělá přesně to, co člověk potřebuje. Zcela nenápadně, aniž by o tom uživatel věděl a aniž by to znatelně zasahovalo do jeho práce, si dělá poznámky o tom, co se dělo. Ozve se jen v případě, že zjistí problém (existující pracovní soubor při zahájení editace).
Naproti tomu některé editory řeší stejný problém periodickým ukládáním textu, což ani zdaleka není totéž. Ukládají větší objem dat, což často vede k viditelnému zpoždění v činnosti editoru. Navíc pokud si po hodině práce usmyslíte, že jste vyrazili slepou uličkou a nejlepší bude vrátit se k původní verzi souboru, máte smůlu. Text byl mezitím několikrát uložen. Takovou situaci si necucám z palce, párkrát se mi to stalo.
Mimochodem – během mnoha let používání vim nepamatuji, že by se editor sám o sobě někdy zhroutil.
© 2016 Pavel Satrapa