3

我有一个自定义函数,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"
4

1 回答 1

1

我有一个类似的将目录切换到我的代码项目的解决方案。这样的事情可能对你有用:

play() { open -a itunes ~/Music/mp3/$@; }
compctl -/ -W ~/Music/mp3 play
于 2011-12-06T14:05:03.197 回答