У меня есть пользовательская функция, и zsh дает мне завершение табуляции по умолчанию для нее. Он завершает пути из текущего рабочего каталога. Это здорово, но я бы хотел, чтобы завершение (только для этой конкретной функции) вело себя немного иначе: как если бы я всегда находился в определенном каталоге.
Можно ли этого достичь с минимальными усилиями? Я бы хотел что-нибудь вроде compdef myfunc="cd /my/dir"
...
Чтобы добавить контекст, моя функция выглядит так:
play() {
(
cd ~/Music/mp3 &&
do-sth $1 &&
open -a itunes $1
)
}
и я хотел бы иметь возможность делать такие вещи, как:
$ ls ~/Music/mp3
Slayer
$ cd ~
$ play S<tab> # expands to "Slayer"