Desativar informações de controle de versão no prompt zsh na montagem sshfs

Alguns dias atrás eu escrevi uma grande quantidade de testes e como meu computador é meio lento decidi colocar o projeto em um servidor (com muito mais poder de computação) para fazer os testes lá. Para economizar tempo empurrando e puxando repetidamente, montei o diretório com meu projeto via sshfs.

sshfs jiri@some.server.com:my_project ~/projects/my_project

Até o momento estava tudo ok até que tentei cdo local montado. Meu terminal congelou! Surpreendentemente, consegui abrir o diretório montado em nautilus. Depois de alguma pesquisa, descobri o problema – meu prompt zsh resolveu, porque eu tinha algumas informações úteis do git lá. Demora MUITO tempo para obter o status do git em vez do sshfs.

Eu hackeei meu prompt para desativar as informações de controle de versão em meu prompt quando ele pwdé montado via sshfs. Isto é o que eu trouxe:

autoload -U colors
autoload
-Uz vcs_info

colors

setopt PROMPT_SUBST


zstyle
':vcs_info:*' enable git hg svn
zstyle
':vcs_info:*' check-for-changes true
zstyle
':vcs_info:*' stagedstr '%F{green}M%f'
zstyle
':vcs_info:*' unstagedstr '%F{yellow}M%f'
zstyle
':vcs_info:git*+set-message:*' hooks git-untracked
zstyle
':vcs_info:git*' formats " %s %b %m%c%u"

+vi-git-untracked() {
if [[ $(git rev-parse --is-inside-work-tree 2> /dev/null) == 'true' ]] && \
git status
--porcelain | grep '??' &> /dev/null ; then
hook_com
[unstaged]+='%F{red}?%f'
fi
}

precmd
() {
if [[ `stat -f -L -c %T $PWD` == *fuseblk* ]]; then
echo
""
else
vcs_info

fi
}

PROMPT
="%B%~%b %{$fg_bold[red]%}%#%{$reset_color%} "
RPROMPT
='%h %n%{$fg_bold[red]%}@%{$reset_color%}%m${vcs_info_msg_0_}'

É assim que meu prompt se parece:

meu prompt zsh

Fonte