V dalším díle našeho seriálu o produktivitě se podíváme na efektivní práci s počítačem. A věřte, že ač název příspěvku vypadá jako z devadesátých let, tak bude aktuální :). Podíváme se v něm na různé aspekty práce s počítačem, jako je psaní na klávesnici, práce se správcem oken, shellem, editorem atd. Na konci příspěvku pak uvedu odkaz, odkud si můžete stáhnout mé nastavení prostředí a programů.
Než se začneme zabývat jednotlivými aspekty práce s počítačem, tak bych rád uvedl ústřední principy, které budou stát za zbytkem příspěvku. Progaming (neplést s programováním) mě naučil jednu důležitou věc: cesta k efektivitě na počítači vede přes následující body:
Pojďme se nyní podívat na jednotlivé aspekty práce s počítačem detailněji.
Měli byste svou klávesnici velmi dobře ovládat. Základem je tzv. touch typing, kdy dokážete klávesnici ovládat, aniž byste se na ni dívali. To vám umožní plné soustředění na monitor, kdy nemusíte přehazovat zrak z jednoho místa na jiné. S tímto úzce souvisí i psaní všemi deseti, které vám umožní využít všechny vaše prsty :).
Další výhodou zvládnutí práce na klávesnici je, že nebudete muset tolik hýbat rukami (neustálé přehazování rukou z home row na pravou část klávesnice či myš). To jednak urychlí práci a jednak odlehčí vašim rukám, takže budete méně náchylní na RSI apod. Čím dále více si uvědomuji, že když přesunu své prsty z home row na šipky vpravo na klávesnici či myš, tak se tím zdržuji. Proto se snažím tyto pohyby omezit.
V neposlední řadě je dobré si ke všem počítačům, na kterých pracujete sehnat shodnou klávesnici. Nebudete si tak muset neustále zvykat na jinou klávesnici. Např. v práci používám tu stejnou klávesnici, co doma.
Je dobré používat takového správce oken, který vám umožní detailní nastavení prostředí a umožní rychlou práci s aplikacemi. Když jsem začínal s Linuxem, tak jsem dlouhou dobu používal KDE. Z tehdy dostupným správců oken se prostředí podobalo Windows a šlo v něm naklikat všechno možné. Později mi však na něm začalo vadit, že se prostředí neustále měnilo (po KDE 3 přišlo KDE 4, které všechno převrátilo naruby, a i během jednotlivých verzí KDE 4 docházelo ke změnám, které mě otravovaly). Když jsem na něco zvyklý, tak nemám rád násilné změny, protože mě zpomalují a iritují. Další věc, která mi na KDE nevyhovovala, byla zbytečná mohutnost. Díky přítelkyni jsem se však dostal k Fluxboxu, který splňoval všechny mé potřeby: velmi jednoduché prostředí bez zbytečných efektů, které se s postupem času nemění a které je plně konfigurovatelné pomocí textových konfiguračních souborů.
Správce oken by vám měl umožnit rychlé spouštění aplikací (klávesové zkratky), rychlé přepínání mezi okny, plochami a monitory (klávesové zkratky), úpravy oken pomocí klávesových zkratek (maximalizace, přesun na jinou plochu/monitor) a další běžně prováděné akce. Naprosto zásadní je dále podpora pro více ploch, kdy na každé ploše můžete mít rozdělanou práci na jednom projektu či části projektu. Např. v práci běžně používám až 12 ploch. Pokud bych to všechno měl mít na jedné ploše či musel neustále něco vypínat či přepínat, tak by mě to velmi zdržovalo.
Shell je (minimálně na Linuxu a jiných *nixech) velmi důležitý, protože pomocí něj můžete řídit celý systém a rychle provádět aktivity, které by vám v grafickém uživatelském rozhraní trvaly zbytečně dlouho. Je proto velmi důležité jej mít vhodně nastavený a efektivně jej ovládat. Osobně používám Bash, protože jsem na něj zvyklý a mám jej konfigurovaný. Jiné shelly, jako je např. Zsh, jsou ale určitě taktéž dobrá volba. Hlavní je najít si shell, který si budete moct nakonfigurovat podle svého a budete jej umět používat.
Nyní bych chtěl zmínit pár tipů, jak díky shellu zefektivnit svou práci. První je pohyb. Buď můžete použít defaultní Emacs mód, nebo si zapnout Vi mód (ten používám já). Umožní vám to pohyb v příkazové řádce pomocí stejných kombinací, na které jste zvyklí z editoru (samozřejmě za předpokladu, že používáte jeden z výše zmíněných). Můžete se tak velmi rychle přesouvat po parametrech od příkazů, měnit je, atd. Mnohem rychlejší, než používání šipek. Mrkněte např. na tento (Vi) nebo tento (Emacs) seznam zkratek.
Je dobré se naučit s shellem pracovat a využívat jeho možnosti. V *nixech je spoustu užitečných programů, jejichž používání vám usnadní práci (find
, grep
, sort
, wc
atd.). Dále můžete využívat roury (angl. pipe), cykly (provedení nějaké akce pro všechny zadané soubory) a různé druhy přesměrování. Např. následující příkaz v Bashi spustí dva programy a porovná jejich výstup ve Vimu: vimdiff <(prog1) <(prog2)
. Je proto dobré si možnosti vašeho shellu nastudovat a plně je využívat.
Dalším tipem je projít si možná nastavení vašeho shellu. Např. v Bashi je pomocí shopt
možno měnit jeho chování. Zmíním dvě užitečná nastavení:
autocd
- Umožní vám místo cd DIR
psát pouze DIR
. Tedy např. místo cd /etc
stačí psát /etc
. To znamená, že u každé změny adresáře ušetříte tři znaky, což je skvělé.globstar
- Umožní vám používat rekurzivní matchování pomocí **
. Např. ls **/*.log
vám vypíše všechny .log
soubory z aktuálního adresáře a podadresářů. Je to rychlejší, než psát find . -name '*.log'
.Je dobré sledovat, které příkazy často používáte a dělat si na ně krátké aliasy či funkce, které zrychlí vaši práci. Čím častěji používaný příkaz, tím je lepší použít kratší alias. Níže uvádím pro představu některé z aliasů a funkcí, které používám:
# Asi nejčastěji používaný alias. Vypíše přehledně obsah aktuálního adresáře. # Doporučuji mít zapnutý barevný výstup, viz níže (např. adresáře budou mít jinou barvu, než soubory). alias l='ls -lA --group-directories-first' # Urychlení přesunu do nadřazených adresářů. alias ..='cd ..' alias ...='cd ../..' alias ....='cd ../../..' # Zkratky pro často spouštěné programy. alias v='vim' alias m='make' alias g='git' alias py='python' alias t='tmux' # Spustí make s danými parametry a následně `make install`. function M() { make "$@" && make install; } # Vytvoření adresáře a následný přesun do něj. function mdc() { mkdir -p "$@" && eval cd "\"\$$#\""; } # Vypíše a seřadí soubory z výstupu grepu. # Použití: vim `grep -r PATTERN | files` function files() { cut -d: -f1 | sort -u; } # Spuštění valgrindu pro detekci paměťových úniků (memory leaks). alias valgrind-leak='valgrind --leak-check=full --show-leak-kinds=all'
Možná se vám to nezdá, ale podobné aliasy představují obrovské urychlení, protože snižují množství znaků, které musíte psát. Další aliasy viz můj .bashrc.
Dále si můžete nastavovat aliasy pro jednotlivé programy. Např. aliasy pro Git jsem zde již popisoval. S jejich využitím můžete např. místo git commit --verbose
psát jen g c
. Můj config pro Git je k dispozici zde.
Mezi další možná nastavení shellu patří barvičky (např. pro ls
, grep
či gcc
). Ty vám umožní ve výstupu zvýraznit to, co je důležité. Mrkněte do sekce Colors
v mém .bashrc.
V závěru sekce o shellu bych chtěl zmínit používání terminálového emulátoru, který umí pracovat s taby (např. Konsole). Souvisejícím skvělým nástrojem je Tmux, který vám umožní si otevřít více oken v rámci jednoho shellu či rozdělit okno s shellem na více částí (viz tento screenshot). Další z mnoha výhod tohoto nástroje je, že po odhlášení z terminálu nepřijdete o spuštěné programy. Můžete si např. na vzdáleném serveru rozdělat práci, odejít domů, na server se připojit a pokračovat v práci, aniž byste přišli o otevřený editor, spuštěné programy atd. Nástroj Screen funguje podobně.
Pro programátora je výběr editoru stěžejní, protože v něm stráví většinu svého času. Osobně používám a doporučuji (G)Vim, a to z následujících důvodů:
cib
(Change In Brackets) Chcete se přesunout na uzavírací závorku, která přísluší k otevírací závorce? %
. Chcete změnit celý obsah řádku? cc
sort
atd.Pokud chcete vidět Vim v akci, můžete mrknout na toto video :). Pokud by vás zajímalo, jak jsem se k Vimu dostal, mrkněte na tento příspěvek z roku 2009.
Jak jsem již zmínil v předchozí sekci, Vim lze "integrovat" i do ostatních aplikací. Když pracujete v shellu, tak pro pohyb můžete použít zkratky z Vimu (vi-mode
v Bashi a Zsh). Když pracujete s Gitem, tak se vám pro napsání commit message či provedení interaktivního rebase zobrazí Vim. Do Firefoxu si můžete stáhnout rozšíření It's All Text, které vám umožní editovat textová pole ve Vimu (či jiném editoru). Můžete tak např. editovat wiki stránky ve Vimu, kde budete mít zvýraznění syntaxe, klávesové zkratky, snippety atd. Do Thunderbirdu existuje rozšíření External Editor, které vám umožní psát emaily ve Vimu (či jiném editoru). Pro Firefox můžete dále použít rozšíření Vimperator, které vám jej umožní ovládat jako Vim. Nemusíte tak ani pro prohlížení webu opustit klávesnici.
Ideální je, pokud vámi využívané aplikace používají textové konfigurační soubory. Jednak to usnadní úpravy nastavení takových aplikací a jednak si pomocí nich můžete jednoduše synchronizovat nastavení na všech počítačích a serverech, kde pracujete (stačí si je hodit někde na net či použít rsync
).
Moje konfigurační soubory jsou k dispozici na GitHubu. Průběžně je doplňuji a aktualizuji. Zkuste na ně mrknout, třeba se vám něco z toho bude hodit (aliasy, nastavení atd.).
Přidat komentář