使用例:source activate <env>
に私のconda環境の名前(つまり、~/anaconda3/envs/
のディレクトリのリスト)を自動完成させようとしています。2番目の引数にbash_autocompleteを使用するには?
:
_source()
{
local cur
COMPREPLY=()
cur=${COMP_WORDS[COMP_CWORD]}
COMPREPLY=($(ls ~/anaconda3/envs | xargs -I dirs bash -c "compgen -W dirs $cur"))
return 0
}
complete -F _source source
私はsource\ activate
と'source activate'
にcomplete
の最後の引数を設定しようとしましたそれは動作していません(ローカルファイルで自動完成します)。
source activate
は機能ではないため、問題を起こしていないようです。
単純な解決策はもちろん、を含む1単語のbashスクリプトを作成することです。しかし、私はむしろそれを適切に行うだろう!
ラッパー関数を定義すると、それを補完する*は適切な方法です。 '〜/ anaconda/envs'の内容に基づいて、' source'のすべての呼び出しが2番目の引数を完成させることは望ましくありません。 – chepner
私は 'source activate'が他のものを取ることを望んでいたことは一度もありません。例はありますか? – Tunisia
'source'は、別のプロセスではなく、現在のシェルで任意のシェルスクリプトを実行する組み込みのシェルコマンドです。 'source activate'は一つのコマンドではありません。これは 'activate'を最初の引数(スクリプトの名前)として' source'を呼び出すだけです。 – chepner