zoxide: malý nástroj, který výrazně zrychlí práci v terminálu
Pokud trávíte hodně času v terminálu, pravděpodobně neustále přeskakujete mezi projekty, repozitáři a různými adresáři. Právě v takových situacích ukazuje zoxide svou sílu. Nenápadný nástroj, který nahrazuje klasické cd, dokáže výrazně zpříjemnit každodenní práci — a po pár dnech používání se bez něj terminál začíná zdát zbytečně pomalý.
Pokud trávíte hodně času v terminálu, pravděpodobně neustále přeskakujete mezi projekty, repozitáři a různými adresáři. Právě v takových situacích ukazuje zoxide svou sílu. Nenápadný nástroj, který nahrazuje klasické cd, dokáže výrazně zpříjemnit každodenní práci a po pár dnech používání se bez něj terminál začíná zdát zbytečně pomalý.
Co je zoxide
zoxide je chytrá náhrada za klasický příkaz cd. Pamatuje si, do kterých složek chodíte nejčastěji, a podle toho vám umožňuje rychlejší pohyb po systému.
Místo vypisování dlouhých cest nebo nekonečného mačkání tabu často stačí napsat jen část názvu projektu nebo adresáře. zoxide si postupně vytvoří vlastní databázi používaných cest a začne odhadovat, kam se chcete přesunout.
Nejde o revoluční koncept. Spíš o odstranění drobné každodenní otravy, kterou si většina lidí v terminálu ani neuvědomuje.
Jak to vypadá v praxi
Základní použití je jednoduché. Místo cd ~/Dropbox/workspace/projekt napíšete:
z projekt
Pokud název není jednoznačný, můžete upřesnit více výrazy:
z foo bar # složka, která obsahuje "foo" i "bar"
z .. # o úroveň výš (jako cd ..)
z - # zpět do předchozí složky
A pokud chcete interaktivní výběr přes fzf:
zi foo # zobrazí filtrovaný seznam a nechá vás vybrat
Příkaz z funguje jako náhrada za cd — jen přidává chytré odhadování cíle podle historie.
Terminál začne působit chytřeji
Největší rozdíl není v tom, že člověk ušetří pár znaků při psaní. Důležitější je změna celkového workflow.
Po nějaké době přestanete přemýšlet nad přesnou strukturou adresářů. Stačí si pamatovat:
- název projektu,
- část názvu složky,
- nebo jen několik charakteristických znaků.
To výrazně zrychluje přepínání mezi projekty, práci ve větších repozitářích, návrat do rozdělané práce i orientaci v dotfiles nebo monorepech.
Čím déle zoxide používáte, tím užitečnější je. Při každém přechodu do adresáře si ukládá informace o tom, jak často a kdy jste danou složku navštívili, a z těchto dat si buduje vlastní databázi priorit. Tu ukládá lokálně na disk a postupně ji upravuje podle vašich reálných návyků. Když potom zadáte jen část názvu adresáře, zoxide nehledá pouze přesnou shodu, ale snaží se odhadnout nejpravděpodobnější cíl podle kombinace názvu, frekvence používání a poslední návštěvy.
Největší přínos poznáte při každodenní práci
zoxide není nástroj, který ohromí během prvních pěti minut. Jeho síla se projeví až po několika dnech běžného používání.
Typická situace: ráno otevřete terminál, během dne se pohybujete mezi několika projekty, občas skočíte do konfigurace editoru, pak do repozitáře, potom zpět do backendu nebo frontendové části aplikace. Právě tady začne být klasické cd překvapivě nekomfortní. zoxide z těchto malých operací odstraní většinu zbytečného psaní.
Ve spojení s fzf je ještě silnější
fzf je populární fuzzy finder pro terminál a se zoxide tvoří velmi silnou kombinaci.
Interaktivní výběr adresářů pomocí fuzzy hledání působí výrazně moderněji než klasická shell navigace. Jakmile si člověk zvykne na rychlé vyhledávání projektů a složek několika znaky, návrat zpět bývá překvapivě nepříjemný.
Právě kombinace zoxide, fzf, moderního shellu a například tmuxu nebo Neovimu dokáže výrazně zpříjemnit každodenní práci vývojáře.
Není to zásadní nástroj. A právě proto je tak dobrý
zoxide neřeší velký problém. Nezrychlí buildy ani nenahradí editor. Jen odstraňuje malé množství tření, které se během dne neustále opakuje.
A právě podobné nástroje mají často největší dopad na komfort práce. Po několika týdnech používání si člověk uvědomí, že terminál bez zoxide působí zvláštně pomalu a neohrabaně.
Odkazy
- Homepage: zoxide.org
- GitHub: github.com/ajeetdsouza/zoxide
- fzf: github.com/junegunn/fzf