一連のディレクトリのタブの完成エイリアスを求めるメッセージを表示しますか?

一連のディレクトリのタブの完成エイリアスを求めるメッセージを表示しますか?

一連のディレクトリのタブの完成を要求するbashエイリアスを作成できますか?

ソース管理の下に多くのプロジェクトがあり、各プロジェクトのデフォルトパスは次のとおりです。~/projs/<projname>/trunk

これで、簡単に切り替えることができるようにBashエイリアスを作成しました。

go-to <projname>

cd ~/projs/<projname>/trunkファイルシステムのどこにいても試してみましょう。

私が書くときにどのプロジェクト名が利用可能であるかを確認できるように、タブ補完<projname>プロンプトを表示することは可能ですか?go-to[space][Tab]

(最新のUbuntuディストリビューションです)

ベストアンサー1

これはエイリアスでは動作しません。プログラム可能な完成詳しくは man bash をご覧ください。)。完成した最小例はbash次のとおりです。

_go-to()  {
    COMPREPLY=( $(compgen -W "~/projs/proj1/trunk ~/projs/proj2/trunk" -- "${COMP_WORDS[COMP_CWORD]}") );
}
complete -F _go-to go-to

したがって、まず関数を作成し、_go-toそれをコマンドにバインドしますgo-to

go-to <tab>これでこれが完了し、go-to /home/user/projs/proj別の<tab>提案のリストが作成されます。

/home/user/projs/proj1/trunk /home/user/projs/proj2/trunk

おすすめ記事