2011-11-07 8 views
3

私はカスタム関数を持っています。 現在の作業ディレクトリからパスを完了します。それは素晴らしいですが、完了するように (この特定の機能のためには)少し異なって を振るように:私はいつも特定のディレクトリにあったかのように。zsh完了:現在のものではなく、特定のディレクトリからのパスを使用します。

非常に少ない作業でこれを達成できますか?

play() { 
    (
     cd ~/Music/mp3 && 
     do-sth $1 && 
     open -a itunes $1 
    ) 
} 

と私はのようなものを行うことができるようにしたい:私は

は、いくつかのコンテキストを追加するには... compdef myfunc="cd /my/dir"のようなものをみたい、私の機能は次のようになります

$ ls ~/Music/mp3 
Slayer 
$ cd ~ 
$ play S<tab> # expands to "Slayer" 

答えて

1

私は、ディレクトリを自分のコードプロジェクトに切り替えるための同様のソリューションを持っています。 このようなものはあなたのためのトリックを行うかもしれません:

play() { open -a itunes ~/Music/mp3/[email protected]; } 
compctl -/ -W ~/Music/mp3 play 
関連する問題