macbook Air(OS-X 10.8.2)を利用している筆者の環境で、インストールした際のメモです。
モジュールゲット
curl -o bash-completion-2.0.tar.bz2 http://bash-completion.alioth.debian.org/files/bash-completion-2.0.tar.bz2
解凍&展開
tar xvfj bash-completion-2.0.tar.bz2
./configure
make
make check
sudo make install
~/.bashrc insert follow lines
Use bash-completion, if available
[[ $PS1 && -f /usr/share/bash-completion/bash_completion ]] && ¥
. /usr/share/bash-completion/bash_completion
bash_completionはdeclareやcompleteコマンドを利用して実現している。
しかし、bashの4系列でサポートされ始めたオプション(連想配列:
declare -Aや、補完文字のdefaultを設定するcomplete -D)を利用しているため、bash3系列では実行できない
もちろん、シェルを修正することで実行できるようにすることは可能と思ったが、それってbash-completionの1.3と同じになるんじゃねって疑問が拭えずに、1.3を利用することにしたw
モジュールは、上記URLを2.0を1.3に変更するだけ。
インストール手順も基本は同じ、ただ、install先のdefault等が異なっている。
シンボリックリンクもうまくはれていないので、install後に手動でシンボリックリンクを張ってあげる
./configure
make
make check
sudo make install
sudo -s /usr/local/etc/bash_completion /etc/bash_completion
sudo -s /usr/local/etc/bash_completion.d /etc/bash_completion.d
以下、~/.bashrcに追加
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi