Miroslav Holec
Premium

Terminál: Tuning ZSH pro vývojáře

Miroslav Holec   6. října 2020

Článek se vztahuje k verzi produktu zsh / macOS

Tento článek je již zastaralý. Článek nemusí popisovat aktuální stav technologie, ideální řešení a můj současný pohled na dané téma.

V jednom z mých předešlých článků jsem psal o přechodu na nový shell ZSH a konfiguračním frameworku Oh my ZSH! Po několika měsících jsem si vyladil ZSH opět k lepšímu obrazu a v tomto článku shrnuji pár tipů na vylepšení terminálu.

Pokud začínáte se ZSH, doporučuji nejprve přečíst můj předchozí článek. Nyní budeme provádět jen dodatečnou konfiguraci v souboru zshrc. Začneme tedy jeho editací ve výchozím editoru:

 open ~/.zshrc

Podpora Visual Studio Code

Občas se hodí otevřít soubor ve Visual Studio Code přímo z terminálu. K tomu stačí přidat odkaz do složky s aplikací VS Code. Obvykle někam na konec zshrc

 export PATH="/Applications/Visual Studio Code.app/Contents/Resources/app/bin:$PATH"

Nyní můžete otevřít soubor ve VS Code příkazem:

 code file.txt

... a nebo rovnou celou aktuální složku pomocí

 code .

Podpora dotnet toolu

Úplně to samé platí pro dotnet tool

 export PATH=$HOME/.dotnet/tools:$PATH

Lepší vzhled a podpora GITu

Chcete-li mít terminál přehlednější a získat skvělou podporu GITu včetně vizuálních vychytávek jako na obrázku níže, čeká nás další nastavování.

Ukazka reflexe GITu a Powerline Fonts

Naším cílem bude instalovat nový skin (téma). Ten ale bude vyžadovat speciální typ fontu (tzv. Powerline Font) a ještě aby to všechno dobře vypadalo, bude potřeba změnit podkladový vzhled terminálu.

Solarized Theme

V první řadě bych doporučil nainstalovat Solarized theme pro terminál. Stačí z oficiálního github repositáře stáhnout tmavé nebo světlé téma (soubor s přípomou .terminal). Ten následně můžete importovat do aplikace Terminál. Import se provádí v Předvolbách a pod seznamem témat je ozubené kolečko s možností import. Poté stačí označit dané téma jako výchozí a doladit si jej (velikost okna, fontů, atd.).

Agnoster ZSH Theme

Dalším krokem je přepnutí tématu ZSH na Agnoster. To se dělá opět pomocí zshrc. Pátrejte po řádku s nastavením ZSH_THEME a upravte jej na:

 ZSH_THEME="agnoster"

Pakliže nemáte agnoster dostupný, můžete jej nainstalovat z github repositáře.

Powerline Fonts

Samotné téma zřejmě nebude fungovat správně. Zavoláte-li v terminálu:

 echo "\ue0b0 \u00b1 \ue0a0 \u27a6 \u2718 \u26a1 \u2699"

a zobrazí se nesmyslné znaky místo "ikonek", potřebujete ještě Powerline Fonts. Najdete je opět na githubu. Stačí odpálit v terminálu sadu příkazů:

# clone
git clone https://github.com/powerline/fonts.git --depth=1
# install
cd fonts
./install.sh
# clean-up a bit
cd ..
rm -rf fonts

a fonty se tímto nainstalují včetně úklidu při klonování repositáře. V mém případě jsem musel následně font (Meslo LG M for Powerline ...) ještě nastavit v tématu:

Nastaveni Powerline fonts

A to je celé. Po restartu terminálu by se měly změny projevit.

Neofetch, konfigurace macOS

Další, celkem užitečný tool neofetch ukáže aktuální nastavení macbooku. Můžete si jej nainstalovat přes homebrew:

 brew install neofetch

A následně kdykoliv spustit příkazem neofetch. A stejně tak si jej můžete přidat do rutin po spuštění terminálu. Stačí přidat opět příkaz do zshrc (ideálně úplně na konec souboru).

 neofetch

Výsledkem je uvítací screen:

Neofetch

Našeptávání - Fuzzy Finder

Další vychytávkou je našeptávání. Když napíšu CD a stisknu TAB, zobrazí se mi možnosti k dispozici. Když stisknu TAB ještě jednou, mohu dokonce jednotlivé možnosti procházet:

Suggestions

Podobně to funguje, když napíšu například dotnet. Pro zajištění podpory je potřeba nainstalovat nejprve fzf. Použít lze opět homebrew:

 brew install fzf

... a následně přidat podporu pro shell:

 /usr/local/opt/fzf/install

Eventuelně by mělo stačit přidat do zshrc řádek (pokud se tak nestalo automaticky)

 [ -f ~/.fzf.zsh ] && source ~/.fzf.zsh

Nyní máte k dispozici našeptávání i možnost podívat se například na poslední použité příkazy. Stačí stisknout v terminálu CTRL+R. Mezi položkami lze přecházet pomocí šipek.