カレントディレクトリに Cargo.toml
が存在したら、rustc --version
実行して、プロンプトに出力するという感じです。ごちゃごちゃと別の設定も入ってますが、キモはprecmd()
あたりです。
雑なのであとはご自身でいい感じにしてみてください。
setopt prompt_subst
local GREEN=$'%{\e[1;38;5;202m%}'
local PINK=$'%{\e[1;38;5;198m%}'
local LGREEN=$'%{\e[1;38;5;149m%}'
local YELLOW=$'%{\e[1;38;5;33m%}'
local BLUE=$'%{\e[1;34m%}'
local DEFAULTNON=$'%{\e[1;0m%}'
local DEFAULT=$'%{\e[1;38;5;152m%}'
autoload -Uz vcs_info
zstyle ':vcs_info:*' formats '(%s)-[%b]'
zstyle ':vcs_info:*' actionformats '(%s)-[%b|%a]'
precmd () {
psvar=()
LANG=en_US.UTF-8 vcs_info
[[ -n "$vcs_info_msg_0_" ]] && psvar[1]="$vcs_info_msg_0_"
if [ -e ./Cargo.toml ]; then
PROMPT_RUSTC_VERSION=" rust:"$BLUE`rustc --version | awk '{ print $2 }'`$DEFAULTNON
else
PROMPT_RUSTC_VERSION=""
fi
}
PROMPT='[%D.%T]'$GREEN'%n@%m: '$YELLOW'%(5~,%-2~/../%2~,%~) '$DEFAULTNON'%1(v|'$LGREEN'%1v%f|)'$DEFAULTNON'$PROMPT_RUSTC_VERSION'$'\n'$DEFAULTNON'%(!.#.$) '