Zshでmvの補完をするとcommand not found: _mv

OSXzshmvとtypeした後にTABで補完すると以下のようなerrorがでる

mv (eval):1: command not found: _mv

もしくは

(eval):1: _mv: function definition file not found

原因はzshのinstall directoryのzsh/share/zsh/functions/_mv が何かの理由で読み込めてない。 以下のような対処法が考えられる。

zshを最新にする

brew uninstall zsh
brew install zsh

iterm/terminalを再起動する

zcompdumpを削除

compinitのcacheを作っている場合は削除する。

rm -f ~/.zcompdump*
exec zsh -l

iterm/terminalの使っているshellを変更する

自分の場合はitermのshellが/bin/zsh でdefaultでOSXに入ってるzshを使っていたのが原因だった。 homebrewでいれている場合は/usr/local/bin/zshにすれば良い。

Reference