Как я могу установить другую.bashrc PS1 в зависимости от каталога, в котором я нахожусь?
У меня есть git-prompt.sh
Настройка скрипта в моем .bashrc
файл, который дает мне полезную информацию git в моем приглашении. Это отлично подходит для небольших репо, но когда я cd
в большом репо для ответа на запрос может потребоваться более 30 секунд, поскольку сначала необходимо просмотреть git-репо.
Можно настроить мой .bashrc
чтобы я мог внести в белый список свои небольшие репозитории для отображения приглашения git или внести в черный список большие репозитории, чтобы он не загружал приглашение git?
Кроме того, я был бы счастлив с флагом / переменной, которую я должен установить, чтобы включить приглашение git.
Соответствующая часть моего .bashrc
выглядит так:
##
# Git prompt options
##
source ~/.git-prompt.sh
GIT_PS1_SHOWDIRTYSTATE=true
GIT_PS1_SHOWSTASHSTATE=true
GIT_PS1_SHOWUNTRACKEDFILES=true
GIT_PS1_SHOWUPSTREAM="auto"
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]$(__git_ps1 " (\[\033[01;33m\]%s\[\033[00m\])")\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w$(__git_ps1 " (\[\033[01;33m\]%s\[\033[00m\])")\$ '
fi
unset color_prompt force_color_prompt
1 ответ
Посмотрите на код - настоящая работа выполняется в функции __git_ps1
, который вызывается изнутри подсказки.
Замените эту функцию своей собственной функцией, например
# this is only a outline of possible code
function myFancyGitPS1() {
case $(pwd) in
*/someDir/*)
specialHandling
;;
*)
__git_ps1 " (\[\033[01;33m\]%s\[\033[00m\])"
;;
esac
}