2012-02-17 8 views

答えて

1

簡単なのカスタムコマンドの完了を有効にする方法がわかりません。あなたが許容引数barbasまたはbazの束とコマンドfooを持っていると仮定すると、完了は簡単です:あなたはfoo barfoo bas、またはfoo bazを持つことができます。彼らがorではない場合でも、あなたは3つの組み合わせを持つことができます。

これは、(例えば、引数carcascazを取ることができbar)あなたは1以上の「深さ」を持っているとき、やや悪化します。

zshでは、コマンドの補完については、completion functionsで詳しく説明しています。これらの関数はそれぞれアプリケーション固有のです。これは、各アプリケーションの引数がそれらのアプリケーション固有のものであるためです。一例として、tmux(よく馴染みがない場合はscreenに似たターミナルマルチプレクサ)は、完了機能がかなり複雑です(here's a link)。

独自の補完機能を記述したい場合は、ドキュメントが利用でき、アクセス可能です。ここには私が(ゆっくりと)自分のやり方で作業しているリンクがたくさんあります。彼らは完璧な仕組みをどうやって教えてくれるのでしょうが、読んだことはたくさんあります。 Zシェルは複雑な獣です。

あなたは、ホスト名のような引数の補完を可能にする上で特に興味を持っている、とあなたのアイデアとしてsshを選び出しました。 sshzsh補完機能は、ZSHソースがある場合は、で定義されています。そうでない場合はlinkです


もちろん、this SO questionはかなり類似しています。 myscriptsshのパラメータが十分に一致する場合は、compdefだけでも必要な処理を行うことができます。

関連する問題