Úvod
Vi Vi a jeho vylepšená verze Vim mají bezesporu obrovské množství fanoušků a disponují také velkým arzenálem nástrojů pro úpravu textů a zdrojových kódů. Dalo by se říci, že kdo si na jejich styl ovládání zvykl, hodně špatně se mu pak přecházelo na jiné podobné nástroje. Historie Vi sahá k prvním osobním počítačům, kdy na klávesnici nebyly ani kurzorové klávesy a uživatelé počítačů byli spíše hackeři než skuteční uživatelé. Za tu spoustu let vývoje, které se Vi a později také Vimu věnovalo, se toto ovládání dotáhlo takřka k dokonalosti. Souborový manager, o kterém je tento článek, vychází právě z takového stylu ovládání, jeho používání je tedy pro „vimisty“ hračkou a velmi rychle si na něj zvyknou.
Historie
Vifm se objevil na sourceforge v roce 2003 a za tu dobu získal svoji pozici ve všech velkých linuxových distribucích. Začátek vývoje celého programu je velmi zajímavý. Jeho autor, Ken Steen, hledal zdrojové kódy pro emelFM (souborový manager postavený nad Gtk+), a když je našel, rozhodl se použít jednu ze tříd v jeho tehdejším projektu. V té době se hodně zajímal o open source a prohlížel si zdrojové kódy různých programů. EmelFM se mu velice zalíbil, a jelikož to byl uživatel Vimu, rozhodl se vytvořit patch, který přidává ovládání podobné právě Vimu. Patche pomalu přibývaly, až se rozhodl, že udělá fork a vytvoří Vide.
Vide byl založený na GTK+, Ken s ním byl spokojený a používal ho. Když se ovšem uživatelé dozvěděli o jeho správci souborů a pronikli do jeho ovládání, začali mu psát proč je to postavené nad GTK+, když by dávalo mnohem větší smysl, kdyby to byl konsolový program. Ken souhlasil, rozhodl se od základů celý program přepsat do Ncurses a přejmenoval ho na Vifm.
Použití
Stejně jako u Vi/Vim, i zde si člověk musí dlouho zvykat, protože se Vifm chová úplně jinak než klasické souborové managery. Zatímco s Mc nebo Krusaderem umí většina uživatelů pracovat od prvního pohledu, u Vifm by dlouho váhali.
Vifm má podobné režimy jako Vi/Vim, které ale nejsou oficiálně pojmenované, proto jim budu říkat normální, příkazový, vizuální, abych udržel termíny podobné Vi/Vimu. Normální režim slouží pro výběr souborů a operace s nimi. Příkazový režim je určený ke vkládání příkazů do vestavěné příkazové řádky a vizuální pro jednoduchý výběr souborů, se kterými chceme operovat. Začneme tedy tím, že si spustíme Vifm (než však tak učiníme, zapamatujeme si, že ho vypneme pomocí :q).
Jakého používáte správce souborů
Pohyb (normální režim)
Pohybové klávesy byl první Kenův patch do emelFM. Pomocí kláves j (dolů), k (nahoru), l (vstoupit do adresáře) a h (odejít z adresáře) je možné se pohybovat v adresářové struktuře na disku. Fungují samozřejmě i normální kurzorové klávesy. Na první řádek se dostaneme zmáčknutím gg, na poslední G a na například 15. řádek můžeme použít 15G. Zdůrazním, že číslovka před klávesou znamená, kolikrát se má jaká akce udělat. Dobrý příklad je mazání souborů, které se provádí napsáním dd, a pokud před dd přidáme číslo (např. 8dd), vymaže se nám počet souborů daný naším číslem od aktuálního řádku dolů. Listování po stránkách se provádí buď pomocí klasického PageUP/PageDown nebo můžeme využít zkratky Ctrl+F a Ctrl+B. Napsání 20% nás přesune na řádek, který je na pozici přibližně jedné pětiny vylistovaných souborů a adresářů. Pomocí mezery nebo klávesy TAB přepínáme panely se soubory. Ctrl+G ukáže informace o aktuálně vybraném souboru.

Další funkce nezbytné pro práci se soubory v normálním režimu shrnu krátce. Zvýraznění souborů se dělá pomocí klávesy t, kopírování souborů pomocí yy(funguje podobně jako dd), klávesa p vloží soubory odebrané nebo zkopírované pomocí dd a yy a klávesa v spustí vizuální mód (v něm se dá využívat yy a dd také).
Mazání a kopírování souborů pomocí dd a yy funguje tak, že pokud se rozhodneme například vymazat soubor pomocí dd, ve skutečnosti se nevymaže, ale uloží se do virtuálního koše. Tam pak zůstává, dokud nepoužijeme dd znovu. V případě yy je situace podobná, ale do koše se soubory jen kopírují. Pokud pak chceme obsah koše vložit někam na disk, použijeme pro to právě klávesu p. Soubory v koši zůstávají do doby, než znovu použijeme yy/dd nebo dokud ho nevyprázdníme pomocí :empty.
Značky
Značkování souborů je podobné jako ve Vi/Vimu. Pokud si chceme označit soubor, ke kterému se chceme později vrátit (například potřebujeme odběhnout do jiného adresáře podívat se do nějakého souboru), použijeme písmeno m a za něj napíšeme značku. Například napsáním ma označujeme soubor značkou „a“. Pokud pak kdekoli napíšeme 'a, dostaneme se přesně na pozici označkovaného souboru. Značky mohou obsahovat malá písmena, velká písmena a číslice. Pro seznam zobrazených souborů napíšeme :marks.

Hledání
Hledání je opět stejné jako ve Vi/Vim a používá se k němu klávesa /. Po zmáčknutí se nám objeví příkazová řádka (jiná než v příkazovém režimu), do které můžeme napsat, co hledáme, pomocí regulárních výrazů. Nalezené soubory (v aktuálním adresáři) se označí.
Příkazový režim
Příkazový režim dělá z Vifm tak silný správce souborů, protože díky němu můžeme soubor spustit různými programy, nebo si nadefinovat vlastní akce a pohodlně je vybírat z výběru. Příkazů je opravdu hodně a dokumentace neobsahuje všechny. Příkazový režim se spustí klávesou :.
Uživatelské příkazy se definují pomocí:
:com [název] [příkaz]
Jejich seznam dostaneme po napsání :com, kde si pomocí menu vybereme, jaký chceme spustit. Odstranění příkazu provedeme přes :delc [název]. Tato funkce se hodí například při úpravě fotek přes příkazovou řádku nebo při složitější práci se soubory.
Napsáním :sh spustíme shell, který máme nastavený v systémovém profilu. Program ukončíme příkazy :q nebo :x. Pokud si přejeme spustit nějaký externí program, použijeme:
:! [program] [parametry]
.
Pokud použijeme vykřičníky dva, tak se výstup na konci zastaví, dokud nestiskneme enter. Poslední spuštěný program vyvoláme :!! bez parametrů. Editování aktuálního vybraného souboru je ve Vifm možné pomocí :e.
Pokud si přejeme seřadit soubory v adresáři podle jiných kritérií než jsou výchozí, tak po napsání :s se objeví nabídka, kde si vybereme, co je pro nás prioritou. Vifm si také pamatuje, jakými adresáři jsme prošli a tuto historii zobrazíme pomocí :his[tory]. Některým uživatelům nemusí vyhovovat rozdělení na dvě okna, a tak po napsání příkazu :only to druhé zmizí. Do původního stavu vrátíme Vifm pomocí :split.

Důležité je zmínit i :help pro velmi dobrou nápovědu, která pomůže, dokud si na program nezvykneme.
Filtrování
Pro filtrování zobrazených souborů a adresářů můžeme použít příkazový režim nebo klávesy pro skládání z Vimu, kde Vifm používá právě pro filtrování. Filtrovat výpis můžeme pomocí:
:fil [regulární výraz]
Po zadání nám zmizí všechny soubory a adresáře, jejichž název odpovídá zadanému regulárnímu výrazu. Do původní stavu výpis dostaneme požitím zO. Pomocí klávesy zM vyfiltrujeme soubory, které odpovídají regulárnímu výrazu posledního použitého filtru. Skryté soubory zobrazíme zadáním zo a schováme se pomocí zm. Označené soubory můžeme zamaskovat použitím zf.
Závěr
Ovládání Vifm je udělané velmi hezky a do rodiny Vi/Vim se s čistým svědomím může zařadit. Chybí mi ovšem lepší práce se symlinky a makra. Pokud vytvoříte symlink na adresář, zařadí se v seznamu mezi soubory, a pokud do něj vstoupíte a zase se vrátíte, dostanete se na místo, kde končí skutečný adresář a ne původní symlink. Makra je obtížnější implementovat, ale v jedné s příštích verzí se jich určitě dočkáme, stejně jako opravy symlinků. Hlavně díky makrům by se tento správce souborů stal pro určitou skupinu uživatelů absolutně nepřekonatelným. Pětiletý vývoj je na této aplikaci velmi znát. Její historie je více než zajímavá a ukazuje, jak moc flexibilní jsou programy uvolněné jako open source.