Ich habe ein ZSH-Skript geschrieben verwendet die Callback-Funktion chpwd
, um projektspezifische ZSH-Konfigurationen zu beziehen. Ich bin mir nicht sicher, ob es mit Bash funktioniert, aber ich denke, es wird einen Versuch wert sein. Wenn es keine Skriptdatei in dem Verzeichnis findet, in das Sie cd'ing, wird es die übergeordneten Verzeichnisse überprüfen, bis es ein Skript findet, um zu finden (oder bis es /
erreicht). Es ruft auch eine Funktion unmagic
auf, wenn Sie sich aus dem Verzeichnis entfernen, wodurch Sie Ihre Umgebung bereinigen können, wenn Sie ein Projekt verlassen.
http://github.com/jkramer/home/blob/master/.zsh/func/magic
Beispiel für eine "magische" Skript:
export BASE=$PWD # needed for another script of mine that allows you to cd into the projects base directory by pressing ^b
ctags -R --languages=Perl $PWD # update ctags file when entering the project directory
export PERL5LIB="$BASE/lib"
# function that starts the catalyst server
function srv {
perl $BASE/script/${PROJECT_NAME}_server.pl
}
# clean up
function unmagic {
unfunction src
unset PERL5LIB
}
Fügen Sie einfach "printf" \ e] 1; $ PWD \ a "' und bam (!) Hinzu, der Tabname wird in pwd geändert. – Fadi
@Fadi die Wahrheit ist, fügen die meisten Leute einfach eine Escape-Sequenz zu der Eingabeaufforderung selbst hinzu, es ist nicht wirklich wichtig, dass sie mit jeder Eingabeaufforderung aktualisiert wird (statt nur beim Wechseln von Verzeichnissen), da dies nicht bemerkbar ist. – falstro