bash派です。
bash completionを利用してコマンド補完を独自に拡張していけるということで、拡張ファイルをgithubで管理するようにしてみました。
bash-completionのインストール
まずは、bash-completion本体をインストールしておきます。Macであれば、
$ brew install bash-completion
でOK。インストールしたら、.bashrcに以下を追加。
if [ -f `brew --prefix`/etc/bash_completion ]; then source `brew --prefix`/etc/bash_completion fi
追加したら設定を有効にしておく。
$ source ~/.bashrc
これで、/usr/local/etc/bash_completion.dにあるコマンドの補完が出来るようになっています。また、このディレクトリに補完したいコマンドのファイルを用意することで、独自拡張を追加していくことができます。
独自拡張をgithubで管理
Chromeのextension作成ツールのcrxmakeを最近使っているので、まずはそのcompletionを作ってみました。中身はこんな感じ。
_crxmake() { local cur prev opts COMPREPLY=() cur="${COMP_WORDS[COMP_CWORD]}" prev="${COMP_WORDS[COMP_CWORD-1]}" opts="--extension-output --help --ignore-dir --ignore-file --key-output --mode --pack-extension --pack-extension-key --verbose --zip-output" if [[ ${cur} == -* ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) ) return 0 fi } complete -F _crxmake crxmake
ホーム直下とか適当な場所に管理用のディレクトリを作り、そこに実体を置いて、/usr/local/etc/bash_completion.dにはシンボリックリンクを作成します。
$ cd ~ $ mkdir bash_completion.d $ cd bash_completion.d $ touch crxmake $ vi crxmake ... $ ln -s "$HOME/bash_completion.d/crxmake" /usr/local/etc/bash_completion.d/crxmake
後は、gitの一連の手順を実行するだけです。hubをインストールして、alias git=hubしていればgit createでgithub上にレポジトリ作ってremote addしてくれるので楽ちん。
$ git init $ git add crxmake $ git commit -m 'crxmake bash completion added' $ git create -d 'bash completion files' $ git push -u origin master