X-Git-Url: https://git.madduck.net/etc/zsh.git/blobdiff_plain/57d22c7977ad80556aca28496d0192d4a72ef73a..c0129fde26e3d2e6caced774d4a457a905b32d63:/.zsh/themes/prompt_madduck_setup diff --git a/.zsh/themes/prompt_madduck_setup b/.zsh/themes/prompt_madduck_setup index 69cff73..c9a04bc 100644 --- a/.zsh/themes/prompt_madduck_setup +++ b/.zsh/themes/prompt_madduck_setup @@ -141,6 +141,11 @@ __vcs_get_repo_type() { emulate -L zsh # return the type of the closest repository in the path hierarchy + # unless we're on a network filesystem: + if __on_networkfs; then + echo netfs + return + fi local dir while true; do [ -d ${dir}.git ] && echo git && break @@ -259,7 +264,7 @@ __vcs_set_prompt_variables() ;; *) case "$repotype" in - NONE) :;; + NONE|netfs) :;; *) warn "$repotype repositories not (yet) supported in the prompt";; esac local MAXLEN MINLEN @@ -293,9 +298,11 @@ if ! is_root; then _update_vcs_prompt_vars_if_vcs_ran() { local vcs="$(__vcs_get_repo_type)" - case "$(history $(($HISTCMD - 1)))" in + case "$vcs/$(history $(($HISTCMD - 1)))" in # $vcs appeared in last command, so be sure to update - *${vcs}*) __vcs_set_prompt_variables "$vcs" + NONE/*) :;; + netfs/*) :;; + */*${vcs}*) __vcs_set_prompt_variables "$vcs" esac } add-zsh-hook precmd _update_vcs_prompt_vars_if_vcs_ran @@ -331,10 +338,11 @@ function make_ps1() { # now comes the working directory, composed from parts in $psvar, # which is managed by $ZDOTDIR/zshrc/06-vcsprompt - echo -n '%1v%(2v.|%B%2v%b|.)%(3v.%3v.)' + echo -n '%1v%(2V.|%B%2v%b|.)%(3V.%3v.)' - # and we finish with #/% for root/non-root, and a space - echo -n '%# ' + # and we finish with #/% for root/non-root, unless psvar[4] is set, and + # a space + echo -n "%(4V.%4v.%#) " echo } PS1=$(make_ps1) @@ -363,7 +371,7 @@ function make_rps1() { echo -n '%D{%d %H:%M:%S.%.}' echo } -RPS1=$(make_rps1) +typeset -g RPS1="$(make_rps1)" unfunction make_rps1 # vim:ft=zsh