Kompatibler Ersatz zur bash – nur viele Details besser. z.B.
- Angenehmeres Verhalten beim Rückwärts-Suchen mit
ctrl-R
. - Übersichtlichere und hübschere Tab-Completion
- git-Unterstützung:
- Completion (kennt git-Kommandos und -Logik).
- Der Prompt zeigt schon die wesentlichen Infos von git status an, sobald man in einem git-Verzeichnis ist. Sehr super!
- history sharing (muss man erst aktivieren – s.u.).
-
Viele Plugins (eine nicht ganz vollständige Plugin-Übersicht), die zsh noch weiter verbessern.
- z.B. habe ich das docker-Plugin ausprobiert.
- Und das docker-compose-Plugin.
- …sehr cool beide. Tab schlägt einem dann immer die entsprechenden Sub-Commands und Optionen vor.
- Folgende Plugins laufen bei mir jetzt, in dem ich sie einfach mit
vi ~/.zshrc
aktiviert habe:plugins=(git docker docker-compose git-remote-branch gitignore jira ubuntu vagrant )
.
-
Sowie Themes für die Optik und Prompt. Ich habe mir nur den Prompt um den kompletten Pfad erweitert (s.u.):
Links
Oh my zsh: Konfiguration von zsh.
Why zsh is cooler: Slides.
Mein Prompt mit vollständigem Verzeichnis:
- Basierend auf dem Theme
robbyrussell
:
cp ~/.oh-my-zsh/themes/robbyrussell.zsh-theme ~/.oh-my-zsh/themes/dstk.zsh-theme
- Anpassen:
function collapse_pwd {
echo $(pwd | sed -e "s,^$HOME,~,")
}
local ret_status="%(?:%{$fg_bold[green]%}➜ :%{$fg_bold[red]%}➜ )"
PROMPT='${ret_status} %{$fg[cyan]%}$(collapse_pwd)%{$reset_color%} $(git_prompt_info)'
ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[blue]%}git:(%{$fg[red]%}"
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%} "
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[blue]%}) %{$fg[yellow]%}✗"
ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[blue]%})"
- Aktivieren:
vi ~/.zshrc
ZSH_THEME="dstk"
share history between terminals in zsh
siehe How do you share history between terminals in zsh?:
vi ~/.zshrc
:
setopt inc_append_history
setopt share_history
Um das „alte“ Profile
.profile
auch von zsh immer mit einzulesen kann man das in~/.zshrc
schreiben:(siehe hier)