28 lines
1,023 B
Org Mode
28 lines
1,023 B
Org Mode
#+title: ZSH Extra Initialization Code
|
|
|
|
Define optional aliases.
|
|
#+begin_src sh
|
|
which lesspipe.sh &> /dev/null && export LESSOPEN="|lesspipe.sh %s"
|
|
which eza &> /dev/null && alias ls=eza
|
|
#+end_src
|
|
|
|
Enable =fzf= extensions for =zsh=.
|
|
#+begin_src sh
|
|
which zsh &> /dev/null && source <(fzf --zsh)
|
|
#+end_src
|
|
|
|
Enable git status in =zsh= prompt.
|
|
#+begin_src sh
|
|
parse_git_dirty() {
|
|
git_status="$(git status 2> /dev/null)"
|
|
[[ "$git_status" =~ "use \"git push\" to publish your local commits" ]] && echo -n " %F{green}%f"
|
|
[[ "$git_status" =~ "Changes to be committed:" ]] && echo -n " %F{magenta}%f"
|
|
[[ "$git_status" =~ "Changes not staged for commit:" ]] && echo -n " %F{yellow}%f"
|
|
[[ "$git_status" =~ "Untracked files:" ]] && echo -n " %F{red}%f"
|
|
}
|
|
setopt prompt_subst
|
|
autoload -Uz vcs_info
|
|
precmd () { vcs_info }
|
|
zstyle ':vcs_info:*' formats ' %F{blue}%b%f' # git(main)
|
|
PS1='%(?..%B%F{red}[%?%\]%f%b )%F{green}%20<...<%~%<<%f$vcs_info_msg_0_$(parse_git_dirty) $ '
|
|
#+end_src
|