Ubuntuのapt-get
のように、コマンドを入力するときにfink
とmacports
でプログラム名をオートコンプリートするにはどうすればよいですか?
たとえば、
Sudo port install ca
そして押す tab、ターミナルでオートコンプリートを実行するか、使用可能なコマンドを表示します。
OS XはSudo
!の後にコマンドをオートコンプリートすらしません。
bash-completion は以下の補完を追加します:
Sudo
およびwhich
の後のコマンド名ssh
のようなコマンドのknown_hosts
のホスト名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-completion(1.3)をインストールしていますが、Bash 3.xでも動作しますが、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 を参照してください。