83 lines
2.8 KiB
Bash
83 lines
2.8 KiB
Bash
bindkey -e
|
||
|
||
autoload -U vcs_info
|
||
autoload -U colors && colors
|
||
autoload -U promptinit && promptinit
|
||
autoload -U compinit && compinit -d $XDG_DATA_HOME/zsh/zcompdump
|
||
|
||
export HISTSIZE=10000
|
||
export SAVEHIST=$HISTSIZE
|
||
export HISTFILE=$XDG_DATA_HOME/zsh/history
|
||
export LESSHISTFILE='/dev/null'
|
||
|
||
setopt prompt_subst
|
||
setopt share_history
|
||
setopt inc_append_history
|
||
|
||
zstyle ':completion:*' menu select
|
||
zstyle ':completion:*' list-colors ''
|
||
zmodload zsh/complist
|
||
|
||
# plugins
|
||
source $ZDOTDIR/plugins/kube-ps1/kube-ps1.sh
|
||
source $ZDOTDIR/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
|
||
|
||
# virtualenv
|
||
export VIRTUAL_ENV_DISABLE_PROMPT=1
|
||
function virtualenv_info(){
|
||
[[ -n "$VIRTUAL_ENV" ]] && venv="${VIRTUAL_ENV##*/}" || venv=''
|
||
[[ -n "$venv" ]] && echo " $venv "
|
||
}
|
||
|
||
# git
|
||
zstyle ':vcs_info:*' enable git
|
||
() {
|
||
zstyle ':vcs_info:*' stagedstr '%F{green}+'
|
||
zstyle ':vcs_info:*' unstagedstr '%F{red}!'
|
||
zstyle ':vcs_info:*' formats " %b %m%u%c%{$reset_color%}"
|
||
zstyle ':vcs_info:*' check-for-changes true
|
||
zstyle ':vcs_info:git*+set-message:*' hooks git-untracked
|
||
}
|
||
+vi-git-untracked() {
|
||
if [[ $(git rev-parse --is-inside-work-tree 2> /dev/null) == 'true' ]] && \
|
||
[[ $(git ls-files --other --directory --exclude-standard | sed q | wc -l | tr -d ' ') == 1 ]] ; then
|
||
hook_com[unstaged]+='%F{red}?'
|
||
fi
|
||
}
|
||
|
||
# kubernetes
|
||
KUBE_PS1_PREFIX=''
|
||
KUBE_PS1_SUFFIX=' '
|
||
KUBE_PS1_DIVIDER='/'
|
||
KUBE_PS1_SEPARATOR=''
|
||
KUBE_PS1_NS_COLOR='blue'
|
||
KUBE_PS1_CTX_COLOR='blue'
|
||
|
||
# fzf
|
||
if [ -f $XDG_CONFIG_HOME/fzf/fzf.zsh ]; then
|
||
source $XDG_CONFIG_HOME/fzf/fzf.zsh
|
||
export FZF_DEFAULT_COMMAND='fd -H -L --ignore-file $XDG_CONFIG_HOME/local/fd'
|
||
export FZF_CTRL_T_COMMAND='fd -H -L --ignore-file $XDG_CONFIG_HOME/local/fd'
|
||
export FZF_DEFAULT_OPTS="--multi -e --ansi --layout=reverse --preview='bat --color=always --tabs=2 --style=plain --theme=Monokai\ Extended\ Bright {}'"
|
||
export FZF_CTRL_R_OPTS="-e --ansi --layout=reverse --preview=''"
|
||
_fzf_compgen_path() {
|
||
fd -H -L --ignore-file $XDG_CONFIG_HOME/local/fd . "$1"
|
||
}
|
||
_fzf_compgen_dir() {
|
||
fd -H -L --ignore-file $XDG_CONFIG_HOME/local/fd --type d . "$1"
|
||
}
|
||
fi
|
||
|
||
# prompt
|
||
newline=$'\n'
|
||
precmd() { vcs_info }
|
||
if [[ -n "$SSH_CLIENT" ]]; then
|
||
PROMPT='%{$fg_bold[default]%}$(virtualenv_info)$(kube_ps1)%{$reset_color%}${vcs_info_msg_0_}${newline}%n@%m %{$fg_bold[cyan]%}%~ %F{%(?.green.red)}❯%{$reset_color%} '
|
||
else
|
||
PROMPT='%{$fg_bold[default]%}$(virtualenv_info)$(kube_ps1)%{$reset_color%}${vcs_info_msg_0_}${newline}%{$fg_bold[cyan]%}%~ %F{%(?.green.red)}❯%{$reset_color%} '
|
||
fi
|
||
[[ `id -u` -eq 0 ]] && PROMPT='%{$fg_bold[default]%}$(virtualenv_info)%{$reset_color%}${vcs_info_msg_0_}${newline}%{$fg_bold[red]%n@%m %{$fg_bold[cyan]%}%~ %F{%(?.green.red)}❯%{$reset_color%} '
|
||
|
||
# local addons
|
||
[ -e $XDG_CONFIG_HOME/local/zsh ] && source $XDG_CONFIG_HOME/local/zsh
|