zsh完成:使用来自特定目录的路径,而不是当前路径
我有一个自定义函数,zsh为它提供了默认的制表符补全。 它完成当前工作目录中的路径。那太好了,但我想 类似于完成(仅针对此特定函数)来表现 有点不同:好像我总是在一个特定的目录中 这能用很少的工作来实现吗?我想要像这样的东西zsh完成:使用来自特定目录的路径,而不是当前路径,zsh,zsh-completion,Zsh,Zsh Completion,我有一个自定义函数,zsh为它提供了默认的制表符补全。 它完成当前工作目录中的路径。那太好了,但我想 类似于完成(仅针对此特定函数)来表现 有点不同:好像我总是在一个特定的目录中 这能用很少的工作来实现吗?我想要像这样的东西 compdef myfunc=“cd/my/dir” 要添加一些上下文,我的函数如下所示: play() { ( cd ~/Music/mp3 && do-sth $1 && open
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"
$ls~/Music/mp3
杀手
$cd~
$play S#扩展为“Slayer”
我有一个类似的解决方案,可以将目录切换到我的代码项目。
像这样的事情可能对你有好处:
play() { open -a itunes ~/Music/mp3/$@; }
compctl -/ -W ~/Music/mp3 play