Mostra o caminho da raiz do projeto no prompt do ZSH

3

Se meu pwd for ~/repos/blog/app/views/ , gostaria de mostrar apenas blog/app/views no prompt, ou seja, quero mostrar apenas a raiz do projeto. Raiz do projeto é o diretório pai do diretório .git . Existe uma maneira de conseguir isso?

    
por Abdulsattar Mohammed 16.03.2014 / 08:30

1 resposta

3

Você pode executar código arbitrário para exibir o prompt se definir as prompt_subst opção. Você não precisa procurar o diretório .git toda vez que um prompt é exibido: na prática, é suficiente atualizar uma variável em cada mudança de diretório atual, no chpwd anexe e use essa variável no seu prompt.

setopt prompt_subst
chpwd () {
  git_root=$PWD
  while [[ $git_root != / && ! -e $git_root/.git ]]; do
    git_root=$git_root:h
  done
  if [[ $git_root = / ]]; then
    unset git_root
    prompt_short_dir=%~
  else
    prompt_short_dir=${PWD#$git_root/}
  fi
}
chpwd
PS1='${prompt_short_dir}%# '
    
por 17.03.2014 / 02:01

Tags