git switch、restoreの補完がfishで効かないのでmasterからcompletionsをもってくる

先週からgitの新しいサブコマンドを使うようにaliasを変更したり、手で打つときに意識したりしていたのだけど、fishだとブランチ名の補完が効かないことに気付いてしまった。

幸いにも、masterには対応したものがあったので( fish-shell/git.fish at master · fish-shell/fish-shell )、これをまるっとcloneしてきて

cp share/completions/git.fish ~/.config/fish/completions/ 

をして一旦おしまい。3.10のリリースまでこれでやっていきましょう。

2019/09/25 追記

fish_update_completions というコマンドを教えてもらった!これはman(1)からcompletionsを生成してくれる。 しかし、 git switch <tab> のようなサブコマンドの補完はmanでは表現できないので、上のようにfishが独自に拡張してくているのだ!(man(1) では git-switchといったコマンドになっている)