update.何がしたいかQiitaに次の投稿がありました。Qiitazsh-completions/_capを使うと、zshでcapコマンドの補完ができるようになります。installでインストールしている状態ではうまく補完ができない、という問題です。なんでだめなのかなぜうまくいかないのでしょうか。_capの中身を見てみると分かります。-Tという箇所がポイントです。-Tは、Capistranoのタスク一覧を表示するコマンドです。-Tを呼び出してタスク一覧を取得して、それを元に補完候補を作成しています。-Tとしないと実行できません)。そのために補完候補が作成できていなかったのです。やって対応するかそれでは、この問題にどうやって対応すればよいのでしょうか。-Tに書き換えることです。この修正をしても将来_capファイルが更新されたときに上書きされてしまうので、その都度改めて直す必要があります。実は、これには別の修正方法があります。-Tというふうに書かれています。この_call_programは、補完関数から呼び出す外部コマンドを差し替え出来るようにするための仕組みです。<コマンド>」という形式で使います。<コマンド>を呼び出すが、もし<タグ名>によって別のコマンドが指定されていたら代わりにそれを呼び出す、という処理を行います。-T」に差し替えればうまくいきます。具体的には、次の行を.zshrcに書きます。-Tに置き換わります。うまく補完されています。指定方法についてのもう少し詳しい説明さきほどのコマンドを差し替える方法について、もう少し詳しく説明します。この指定方法は、補完対象となるコマンド名などによって書き方が変わります。具体的には、次の形式で指定します。<呼び出したいコマンド>タグ名は補完ファイルの中を見て確認します。今回の例の場合は<補完コマンド名>はcap、タグ名はcommandsです。<呼び出したいコマンド>は、使用している環境によって変わります。-T」と指定しました。他の例を見てみましょう。rakeの補完ファイルはzshに標準で含まれています。僕のUbuntu環境では、/usr/share/zsh/functions/Completion/Unix/_rakeに補完ファイルがあります。installでインストールしているとrakeのタスクが補完されません。_rakeファイルの中を見ると、次のように書かれています($words[1]は現在のコマンドラインの先頭の単語を表します)。_call_programが使われているので、_capのときと同じ要領でコマンドを差し替えできます。次の行を.zshrcに追加します。rakeに置き換えただけです。installしているときにうまく補完できるようになりました。zshはこうやって補完の動作をカスタマイズできるようになっているので、試してみてください。upLoginユーザーは見つかりませんでした。