goのサブコマンドを補完するように設定した
goを久しぶりに更新しました。そしたら8g, 8lとかが無くなって少し焦りました。なんとなくgoとタイプしてみたら、goコマンドに統一されたようだということが分かりました。いつごろからgoになったんでしょうね。
サブコマンドの補完機能が標準でついてなかったので、"/etc/bash_completion.d"下に次のファイルを設置しておきました(ubuntuだとここを編集するみたいです。macとかの情報もググったら載ってました)。
_go() { local opts cur prev opts="build clean doc env fix fmt get install list run test tool version vet help" cur="${COMP_WORDS[COMP_CWORD]}" prev="${COMP_WORDS[COMP_CWORD-1]}" case "${prev}" in post|private_post) COMPREPLY=( $(compgen -f ${cur}) ) return 0 ;; esac COMPREPLY=( $( compgen -W "${opts}" ${cur} ) ) } complete -F _go go