Завершение zsh: использовать пути из определенного каталога, а не из текущего - PullRequest
3 голосов
/ 07 ноября 2011

У меня есть пользовательская функция, и 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"

1 Ответ

1 голос
/ 06 декабря 2011

У меня есть похожее решение для переключения каталогов на мои проекты кода.Что-то вроде этого может помочь вам:

play() { open -a itunes ~/Music/mp3/$@; }
compctl -/ -W ~/Music/mp3 play
...