Hlavní navigace

Souborový manažer ranger – ovládání jako ve VIM

Jan Knížek

Používáte VIM už nějaký ten pátek a nedáte na něj dopustit? Chtěli byste jej používat ještě více? Zkuste netradiční souborový manažer ranger, který se snaží přinést co nejvíce z VIMu do světa práce se soubory.

Ranger je souborový manažer napsaný v Pythonu. Na rozdíl od klasického dvoupanelového rozvržení přichází s myšlenkou podobnou webovým prohlížečům. Panelů můžeme mít libovolně mnoho a ve výchozím nastavení se zobrazuje vždy právě jeden, který využívá celý prostor terminálu.

Vzhledem k tomu, že ranger se snaží implementovat rozhraní, co nejvíce podobné ovládání VIMu, je vhodné, aby čtenář měl základní zkušenosti s VIMem. Není to však samozřejmě podmínkou. Při čtení doporučují otevřít ranger a příkazy v něm rovnou zkoušet. Všechny klávesové zkratky jsou přehledně zobrazeny v taháku na oficiálních stránkách.

V článku budeme rozlišovat dvě věci, aktuální složku, což je ta, na jejíž obsah se právě díváme, a soubor pod kurzorem, což je soubor, který je označen podbarveným pruhem a je to ten, se kterým provádíme operace. V rámci šetření očním pohybů budu v článku tímto souborem myslet soubor či složku, pokud nehrozí, že dojde k omylu. Ostatně, v *nixových systémech je složka jen speciální typ souboru.

Pokud ranger nemáte v oficiálních repositářích, stačí jej stáhnout z oficiálních stránek, není potřeba nic kompilovat. Stačí spustit ./ranger.py. Pro instalaci pro všechny uživatele můžeme použít příkaz:

sudo make install

První zapnutí

Aktuální panel je vertikálně rozdělen na tři části. V prostřední máme obsah právě procházené složky a v pravé obsah toho, co je právě pod kurzorem. V případě složky výpis souborů, v případě souboru pak buď náhled, nebo informace o souboru. Pokud není není možné nic zobrazit (např. pro binární soubory), pravý sloupec prostě zmizí.

V levém sloupci je zobrazená nadřazená složka právě procházené, díky čemuž snadno vidíme, kde zrovna jsme. Poloha aktuální složky je také zobrazena v horním řádku s barevně odlišeným souborem pod kurzorem.

Ranger při zapnutí otevře jeden panel ve složce, ze které byl spuštěn. Další panely můžeme vytvořit stiskem ^n . Klávesaq pak aktuální panel zavře a v případě posledního panelu ukončí ranger. Panely jsou očíslovány v pravém horním rohu a aktuální je podbarven. Můžeme si také zobrazit všechny panely najednou stiskem ~ . Přepínáme se mezi nimi tabulátorem a shift+tabulátorem.

Aktuální složku procházíme intuitivně, jako bychom byli ve VIMu. Klávesami j a k se pohybujeme dolů a nahoru, h nás přepne do nadřazeného a l otevře složku pod kurzorem. Kromě l funguje také enter. Pokud je pod kurzorem soubor, ranger se jej pokusí otevřít. Více viz níže.

Klávesami [ a ] měníme aktuální složku, aniž bychom se nejdříve museli přepnout do nadřazené. Stejně jako ve VIMu pohybujeme kurzor o celou obrazovku či půl obrazovky zkratkami ^f, ^b, resp. ^d a ^u. Stejně fungují také zkratky gg a G. Před tyto příkazy můžeme číselně napsat, kolikrát se mají zopakovat.

Nápovědu si můžeme kdykoliv zobrazit stiskem ? nebo tradičním :help. Ta je rozdělena na čtyři stránky. První je klasická manuálová stránka, kde najdeme základní informace. Další částí je aktuální namapování klávesových zkratek, což se obzvlášť hodí, když zapomeneme, na co že jsme si to vlastně přemapovali mezerník ;).

Dále následuje popis příkazů používaných v řádkovém režimu. Poslední volba zobrazuje nastavení přepínačů.

Režimy

Ranger pracuje stejně jako VIM pracuje s konceptem režimů. Ze zřejmých důvodů je však práce s nimi odlišná. Vše, co jsme si zatím popisovali, bylo v normálním režimu. V něm provádíme základní příkazy pomocí klávesových zkratek. Bonusem oproti VIMu je zobrazení možných pokračováních víceklávesových zkratek.

Pro přejmenování aktuálního souboru můžeme použít klávesy I, a, A. Každá se chová mírně odlišně. Doporučuji vyzkoušet.

Další příkazy, které si ukážeme, pracují s výběrem a schránkou. Pokud jsme neoznačili žádný soubor, je výběrem aktuální. Vybrané soubory jsou podbarvené žlutě a předsazené mezerou. Vybíráme je mezerníkem. Kromě toho můžeme použít klávesuv na inverzi výběru. StiskemV se přepneme do vizuálního režimu, který funguje stejně jako ve VIMu. Výběr je definován pouze v rámci složky. Díky tomu, že si ranger výběr pamatuje, i pokud se pohybujeme mezi různými složkami, můžeme tak aktuální výběr přepínat procházením adresářové struktury.

Druhým konceptem je schránka, která slouží pro přesun a kopírování souborů. Funguje to tak, že do schránky pomocí výběru přidáváme soubory a pak pracujeme se schránkou jako celkem. Díky tomu můžeme kopírovat najednou soubory z více složek.

Pro kopírování slouží klávesa y. Dvojitým stiskem nastavíme schránku na aktuální výběr, stisk ya jej přidá a yr ze schránky vymaže jen ty soubory, které jsou ve výběru. Hezkým bonusem jsou příkazy ygg a yG, jejichž vyzkoušení nechám na čtenáři.

Pokud místo kopírování chceme soubory vyjmout, použijeme klávesu d. Použití dd, da, dr, dgg a dG je analogické jako při kopírování.

Pro vložení ze schránky použijeme p. Dvojitým stiskem obsah vložíme, v případě kolize jmen se za jméno přidá podtržítko. Nemusíme se tak bát o své soubory. po kolize přepíše. Zajímavé příkazy jsou phl, pl a pL, které místo kopírování vytvoří pevné resp. symbolické odkazy.

Užitečné také mohou být klávesy pro změnu přístupových práv souborů. Princip je stejný jako u příkazu chmod. Můžeme buď napsat tři číslice následované rovná se, čímž nastavíme práva. Pro přidání a odebrání můžeme použít plus resp. mínus následovaným jedním písmenkem, které určuje, koho se změna týká (augo – všichni; uživatel; skupina a uživatel; ostatní). Nakonec přidáme, které oprávnění měníme, tedy r, w či x.

Pro zrušení poslední akce můžeme použít klávesu u . Po stisku se nám, jak je zvykem, zobrazí nabídka možností. Pomocíut můžeme zrušit označení souboru,u<záložka></záložka> zrušíme záložku aud vyprázdníme schránku. O prvních dvou se dozvíme dále.

Řádkový režim

Řádkový režim slouží ke spouštění příkazu. Přepneme se do něj klávesou : či ;. Pak již jen stačí napsat požadovaný příkaz a stisknout enter. Poté se ranger přepne zpět do normálního režimu. Vše samozřejmě vidíme ve stavovém řádku. V tomto článku si představíme několik základních příkazů, zbytek může čtenář, jako obvykle, najít v nápovědě sekce příkazy.

Pro hromadné přejmenování souborů se hodí příkaz :bulkrename. Po spuštění tohoto příkazu se otevře textový editor z proměnné $EDITOR (výchozí je přirozeně VIM) a na každém řádku bude jeden soubor či složka z výběru. Ty můžeme libovolně přejmenovat a po uložení a zavření editoru se soubory podle odpovídajících řádek přejmenují. Předtím se však ještě celá změna zobrazí pro potvrzení.

Následující příklad jsem osobně nikdy nepoužil, ale třeba se někomu bude hodit. Spuštěním:flat <úroveň> můžeme expandovat adresáře až do specifikované úrovně (popř. všechno v případě –1). Expandování probíhá tak, že se v aktuální složce zobrazí i soubory a složky v podsložkách prefixované příslušnou cestou. Pokud tedy máme spoustu souborů zanořených různě hluboko, můžeme si je zobrazit všechny najednou.

Další funkce

záložky

Velmi užitečnou funkcí pro rychlý pohyb v adresářové struktuře jsou záložky. Záložka je libovolná složka a její jméno může být číslice či písmeno. Na rozdíl od VIMu jsou velká i malá písmena zachovaná i po vypnutí rangeru. Pro vytvoření záložky v aktuální složce stiskneme m a jméno záložky. Záložku pak otevřeme klávesou  `.

Kromě standardních záložek existuje ještě záložka pojmenovaná ` (či ekvivalentně '), která se nastaví na poslední otevřený adresář před otevřením záložky. Stiskem se tak snadno dostaneme zpět, a protože to je také skok na záložku, opětovným stiskem se dostaneme na původní záložku. Můžeme se tak snadno přepínat mezi dvěma složkami, což osobně využívám např. při kopírování, protože je to rychlejší než vytvářet nový panel.

označování souborů

Soubory není možné označit záložkou, ale je možné označit je libovolným písmenkem, číslem, či znakem jako +, -, =. Přesný seznam bohužel v dokumentaci chybí. Pokud stiskneme t, všechny soubory ve výběru se buď označí, nebo odznačí hvězdičkou. Pokud chceme použít jiný znak, stiskneme " a požadovaný znak. Např. si takto můžeme označit díly seriálů, které jsme již viděli.

V rangeru je možné ale dělat mnohem víc. Příkazem :mark_tag [<znak>] můžeme přidat do výběru všechny soubory označené nějakým znakem, popř. pouze konkrétním zadaným. Přidávají se samozřejmě pouze soubory v aktuální adresáři.

Kromě souborů můžeme samozřejmě označit také složky, těm pak můžeme změnit nastavení přepínačů pomocí příkazu :setintag <tag(y)> <přepínač>=</přepínač></tag(y)>. U složky se stahovanými soubory často potřebujeme přistoupit k poslednímu stáhnutému soubory. Pro zjednodušení práce si tuto složku můžeme označit s a do konfigurace přidat příkaz:

:setintag s sort=ctime

Při dalším spuštění se všechny složky označené písmenkem s budo řadit podle data vytvoření.

Bohužel v době psaní článku nefunguje nastavení některých přepínačů, jako preview_directories=False, který vypne automatické prohlížení složky pod kurzorem. Obzvláště pro síťové disky je tohle pomalé, proto by se hodilo si síťové disky jednoduše označit a tuto funkcionalitu vypnout.

Alternativou k předchozímu příkazu je :setlocal cesta=<regulární výraz> <přepínač>=<hodnota>, který se chová stejně, jen místo označených složek nastavuje přepínače pro cesty, které odpovídají regulárnímu výrazu.

Tímto jsme se seznámili se základním ovládáním. Příště se krátce vrátíme k metadatům a vrhneme se na konfiguraci.

Našli jste v článku chybu?