また、エイリアスをどのように自動補完しますか?
また、エイリアスをどのように自動補完しますか?
回答:
コマンドに応じて:
/etc/bash_completion.d/*
(または一部のシステムでは別の場所に)いくつかのコマンドの機能があります。これらの関数はビルトインに登録されています(たとえば、コマンドを押したときに関数を呼び出すようにbashに指示します)。ビルトインを使用して、bashに「ここに可能な補完があります」と伝えます。complete
complete -F _find find
_find
Tabfind
compgen
--help
、出力を解析します。このようなコマンドはcomplete
、たとえば、組み込みで登録できますcomplete -F _longopt ls
。_longopt
実際には、補完生成関数であり、固定リストを使用するのではなく、コマンドの出力を解析します。(コマンドの出力を解析して補完候補を生成する、より特殊な補完関数が他にもあります/etc/bash_completion.d/*
。例を見てください。)complete
ビルトインは、そのためのオプション、例えば持っている-A
エイリアスのを。bash補完のサポートは、bash補完パッケージによってDebianおよびUbuntuで提供されます。また、通常、次のコメントを外す/etc/bash.bashrc
か.bashrc
、bash完了ファイルを入手する必要があります。以下はから/etc/bash.bashrc
です:
# enable bash completion in interactive shells
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
. /etc/bash_completion
fi
これが機能するために。私は通常、両方でコメントを外します。Debianでの対話型/ログインシェルの処理は少し面倒です。
同様のコメントはおそらく他のディストリビューションにも当てはまりますが、デフォルトではソーシングが有効になっている可能性があります。