カスタム関数があり、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"