Z shell

Vedle samotného vývoje se zabývám devops činnostmi, ke kterým patří různé práce na strojích v drtivé většině s OS Linux. Hodně času trávím v sehllu. Na většině serverech je výchozím shellem bash a mě až do nedávné doby nenapadlo nevyzkoušet žádný jiný shell. A že jich je….

Až do minulého týdne. Po velmi dlouhé době jsem se vrátil k zshellu. Podařilo se mi dotáhnout instalaci až do konce a jsem nadšený… Nejenže zshel vystřídal na mém mekovi stantdartní a defaultní bash, ale nainstaloval jsem si jej i na ostatní servery, na kterých provádím nějaký deploy.

Jednu z nejsilnějších stránek zshellu vidím super konfigurovatelnost promptu a jeho možnosti vizualizace. Prompt v zshellu vypadá opravdu skvěle. A nakonfigurovat jej je skutečně hračka.

zshell

Na první pohled vidím, že nejsme na svém stroji, ale na nějakém serveru, vidím kde jsem, ale co je největší přínios, hned vidím kde jsem v gitu, na jaké jsem branchi a jak si na něm vedu. Mám aktuální zdrojáky? Nejsem v nějaké změně dopředu? Integrace promptu s zsehllem je super!

Vedle toho jsem si dokonfiguroval pravou stranu promptu: odebral jsem všechny možné skopičiny a nahradil jej jen jednoduchou notifikací informace s návratovou hodnotou provedeného příkazu.

Další drobnost, ketrá potěší. Už žádné echo $?, ale jasně zobrazený výsledek i s exit statusem…

A těch drobností je mnohem. Víc.

zshell: instalace

1. instalace samotného zshellu

Pokud jste na mackovi stačí jen přes brew:

brew install zshell

A pak už jen výměna defaultního bash za zshell:

chsh -s /bin/zsh

2. instalace oh-my-zshell

Oh My Zsh je skvělá nadstavba pro zshel!

sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

3. instalace themes pro oh-my-zshell

git clone https://github.com/bhilburn/powerlevel9k.git ~/powerlevel9k
echo 'source  ~/powerlevel9k/powerlevel9k.zsh-theme' >> ~/.zshrc

4. kustomizace promptu

Finální úprava konfigurace v ~/.zshrc

source  ~/powerlevel9k/powerlevel9k.zsh-theme
export LANG="en_US.UTF-8"
POWERLEVEL9K_HOST_LOCAL_BACKGROUND='red'
POWERLEVEL9K_HOST_LOCAL_FOREGROUND='white'
POWERLEVEL9K_HOST_ICON=''
POWERLEVEL9K_SSH_ICON=''
POWERLEVEL9K_HOST_REMOTE_FOREGROUND='white'
POWERLEVEL9K_HOST_REMOTE_BACKGROUND='red'

alias ts="ts-node"
export NPM_TOKEN="vas NPM token, pokud nejaky mate..."
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status)
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(host dir rbenv vcs)

5. změna fontu v terminálu

Aby se všechny znaky korektně zobrazovaly, je potřeba si v terminálu nastavit font, který tyto znaky umí. Jedná se o fonty, které obsahují ve svém názvu slovo Powerline. Odkaz na fonty najdeš níže.

font

iTerm2 -> Preferences -> Profiles -> Text -> Font

6. doinstalovani pluginu

# minimalne tyhle pluginty pro jednodussi a hezci prompt...
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

je pak jeětě potřeba do sekce plugins pridat zsh-autosuggestions a zsh-syntax-highlighting

Hotovo!

Může se hodit:
Powerlevel9k
Powerline fonts
Oh My Zsh