コマンドラインエイリアスでタブ補完機能を使用したいと思います。たとえば、次のエイリアスを定義するとします。
alias apt-inst='sudo aptitude install'
Tabキーを押したときにaptitudeが提供する完成を得る方法はありますか?つまり、「sudo aptitude install gnumer」と書いてタブを押すと、aptitudeがgnumericで完了するか、わからない場合はgnumerで始まる利用可能なすべてのパッケージが一覧表示されます。私のエイリアスを使ってこれを行うと、何も起こりません。何もしません。
ベストアンサー1
努力する完全エイリアス、この問題を正確に解決します。 (婦人声明complete_alias
:私は)の著者です
インストールしたら、共通関数を使用して次のような多くのエイリアスを実行できます。
complete -F _complete_alias <myalias1>
complete -F _complete_alias <myalias2>
complete -F _complete_alias <myalias3>
complete_alias
または、同様の方法で各bashインスタンスからこのファイルを取得できます.bash_profile
。
インストールする
mkdir ~/.bash_completion.d
curl https://raw.githubusercontent.com/cykerway/complete-alias/master/complete_alias \
> ~/.bash_completion.d/complete_alias
アプリケーション
source ~/.bash_completion.d/complete_alias
alias container=docker\ container
complete -F _complete_alias container
container
これで、_docker()
元の完了ハンドラによって自動的に完了できます。
$ container l<Tab>
logs ls
$ container s<Tab>
start stats stop