OS X Lion ma funkcję „Wznów”, tzn. Po ponownym otwarciu aplikacji przywraca wszystkie okna i ich zawartość. To działa również w Terminalu. Ale jeśli użyjesz Zsh zamiast Bash, nie przywróci on otwartego katalogu. Jak mogę to naprawić?
terminal.app
zsh
osx-lion
Simon Perepelitsa
źródło
źródło
Odpowiedzi:
AKTUALIZACJA : Nie jest to całkowicie poprawne, z powodów wymienionych w komentarzach. Skorzystaj z odpowiedzi poniżej . Dzięki @ChrisPage za włożenie dodatkowej mile :)
Odpowiedź można znaleźć za pomocą inżynierii odwrotnej, w jaki sposób bash to robi
/etc/bashrc
. Próbowałem wielu podejść z całej sieci, ale sposób Apple wydaje się działać najlepiej (idź rysunek).W swoim
.zshrc
dodaj następująceHappy wznowienia.
źródło
chpwd
jakprintf '\e]7;%s\a' "$PWD_URL"
w przypadku podwójnych cudzysłowów. Dzięki za wskazówkę.Oto moja adaptacja / etc / bashrc dla zsh. Podałem kodowanie procentowe wszystkich znaków URL, które tego wymagają, co jest ważne, jeśli chcesz, aby działało ze wszystkimi prawidłowymi nazwami plików i katalogów.
To rejestruje
precmd
przechwycenie, które pozwala zarejestrować więcej niż jedną funkcję w innych skryptach i plikach konfiguracyjnych.ZAKTUALIZOWANY Marzec 2019: Ustaw
LC_ALL
na pusty, aby nie zastępowałLC_CTYPE
. Służyprecmd
do aktualizowania katalogu roboczego przy każdym pytaniu zamiastchpwd
do aktualizowania go za każdym razem, gdy jest zmieniany - potoki poleceń mogą go tymczasowo zmienić i terminal nie powinien ich wyświetlać. Pomocne może być również zaktualizowanie stanu terminala w przypadku każdego monitu na wypadek, gdyby został on zmieniony podczas poprzedniego polecenia. Służyprintf -v
do jawnego zapisu do zmiennej zamiast używania składni podpowłoki.źródło
terminalapp
wtyczkę..zprofile
czy cokolwiek innego, tak jak to zrobiłem, zanim zdałem sobie sprawę, że w rzeczywistości jest dostępnyoh-my-zsh
. Jest to dokładnie to samo rozwiązanie i zasługujesz na uznanie.