回答:
bash-completionは、次の補完を追加します。
sudo
andの後のコマンド名which
known_hosts
ようなコマンドのホスト名ssh
CDPATH
等々。で補完コマンドのリストを印刷し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>
、すべての可能なコマンドのリストを入力して取得します。」動詞の完成(はるかに簡単です)。