コマンドエイリアスのbashの完成を取得するには?

コマンドエイリアスのbashの完成を取得するには?

コマンドラインエイリアスでタブ補完機能を使用したいと思います。たとえば、次のエイリアスを定義するとします。

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   

おすすめ記事