27415
zsh にはあまり詳しくないです。

`foo □` と入力した後に、(□はカーソル) TAB を入力した際には、 `bar` もしくは `piyo` を補完したいです。  
これは、どうやったら実現できるでしょうか。
CC BY-SA 3.0
2016-07-05T10:07:00.790
27360
2016-07-07T08:28:45.407
754
question
zsh
zsh で補完を定義するには？
以下のファイルを_fooという名前で$fpath（環境変数）が通っているところ作成します：

```

    #compdef foo
    _foo () {
      _value mode_name bar piyo
    }
    
```

$fpathが定義されていないかシステムのものしかない場合は自身でzshrc内で定義するよいいでしょう。  
より詳細な情報は`zsh compdef`でググると出てくるでしょう。例えば以下が詳しいとおもいます。  
<https://gist.github.com/mitukiii/4954559>

また既存のコマンドの補完がなくて困っているなら[zsh-completions](https://github.com/zsh-users/zsh-
completions)をインストールすると良いでしょう。
CC BY-SA 3.0
2016-07-07T08:28:45.407
27415
2016-07-07T08:28:45.407
9572
27360
answer