回答:
bash-completionは、次の補完を追加します。
sudoandの後のコマンド名whichknown_hostsようなコマンドのホスト名sshCDPATH等々。で補完コマンドのリストを印刷しcomplete -p、で関数のソースを見ることができますdeclare -f。
最初に、指示に従ってHomebrewまたはMacPortsをインストールする必要があります。注:競合するため、両方をインストールしないでください。
次に、Bashの新しいバージョンをインストールします。OS Xに組み込まれているBashは少し古く、Bash> 4.1でより多くの完了オプションが得られます。
brew install bash
または
sudo port install bash
Homebrewを使用するかMacPortsを使用するかによって異なります。
をインストールするにはbash-completion、以下が必要です。
brew install bash-completion
そして、以下を以下に追加します~/.bash_profile:
if [ -f $(brew --prefix)/etc/bash_completion ]; then
. $(brew --prefix)/etc/bash_completion
fi
Homebrewは現在Bash 3.xで動作するbash-completion(1.3)の古いバージョンをインストールしますが、それでもBash 4.xを使用することをお勧めします。
MacPortsの場合:
sudo port install bash-completion
次に、に追加~/.bash_profile:
if [ -f /opt/local/etc/profile.d/bash_completion.sh ]; then
. /opt/local/etc/profile.d/bash_completion.sh
fi
ポート名の補完を有効にする方法については、trac.macports.org / wiki / howto / bash-completionをご覧ください。
variants.confはMacPorts自体の完成版ではありません。variant.confは、リンクしたwikiページで説明されているように、すべてのポートに自動的に設定するバリアントを定義します。その行を追加すると、インストールするポートで可能な場合にbash補完サポートが有効になります。
makeオートコンプリートが有効になりました。
bash-completionパッケージは、の後の追加引数としてパッケージ名の補完をサポートしますport <verb>。こちらの 48〜58行目をご覧ください。この動作はMacPorts wikiで示唆されており、「これはファイルとディレクトリだけでなく、たとえばのコマンドにも使用されますport。したがってport <Tab>、すべての可能なコマンドのリストを入力して取得します。」動詞の完成(はるかに簡単です)。