Musisz włączyć tę AUTO_NAME_DIRS
opcję w konfiguracji Zsh
setopt autonamedirs
to musi się zdarzyć, zanim ustawisz PROJ
.
Alternatywnie, jeśli nie potrzebujesz PROJ
niczego innego niż przełączanie (i wyświetlanie) ścieżek w Zsh , możesz ustawić
hash -d PROJ=$HOME/project
Wyjaśnienie:
Używana funkcja nosi nazwę „Katalogi nazwane statycznie”. Zwykle nazwane katalogi muszą być wywoływane, a ~
następnie nazwą parametru powłoki, którego wartość zaczyna się od /
, PROJ
w twoim przypadku.
Jeśli CDABLE_VARS
jest włączone (co domyślnie robi Oh-My-Zsh ), ~
tak naprawdę nie jest wymagane. Dlatego możesz użyć PROJ/project_name
zamiast ~PROJ/project_name
. (ale to by się nie udało, gdyby istniał katalog z rzeczywistą nazwą PROJ
).
Ponieważ Oh-My-Zsh pozwala AUTO_CD
ci nawet nie używać cd
. Jeśli polecenie nie może zostać wykonane i pasuje do nazwy katalogu, Zsh przejdzie cd
do tego katalogu.
Przy wszystkich nazwanych katalogach wyszukiwania mogą odbywać się w dwóch kierunkach
- czy dana nazwa wskazuje katalog (np. czy parametr zawiera ścieżkę zaczynającą się od
/
)?
- czy bieżący katalog ma nazwę?
Podczas gdy pierwszy rodzaj wyszukiwania odbywa się automatycznie, gdy argument zaczyna się od ~
(lub w niektórych przypadkach i jest włączany CDABLE_VARS
nawet bez), drugi rodzaj (używany w wierszu polecenia) wymaga, aby katalog był wymieniony w tabeli skrótów katalogu ( hash -d
dla listy tego stołu). W świeżo uruchomionym Zsh ten stół mieszający jest zwykle pusty. Następnie zostaną wypełnione danymi uzyskanymi podczas wykonywania ~
rozszerzeń.
W oryginalnej powłoce PROJ
został pomyślnie rozwinięty $HOME/projects
i dlatego tabela skrótów katalogu zawiera teraz PROJ=$HOME/projects
(gdzie $HOME
jest zastąpiona rzeczywistą ścieżką katalogu głównego). Zsh może teraz sprawdzić to pod kątem podpowiedzi. Po uruchomieniu tmux uruchamiana jest nowa powłoka, a tablica skrótów katalogu jest ponownie pusta, dlatego nazwa nie jest zastępowana w wierszu poleceń.
Z AUTO_NAME_DIRS
wpisem w katalogu tablica skrótów jest tworzona natychmiast, gdy parametr jest ustawiony na wartość zaczynającą się od /
(lub jest usuwany, jeśli nowa wartość nie zaczyna się od /
). Możesz także dodać ręcznie do tabeli skrótów katalogu za pomocą hash -d NAME=PATH
.