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 に答える