はじめに
MSYS2のzshを使い始めてまず気になったのが、Cドライブ等のパス補完ができないことである。
$ cd /c/<TAB>
bashでは補完が行われていたが、zshでは何も起きない。
zshの問題だと思いしばし放置していたが、いくらなんでも補完が出来ないのは効率が悪すぎるので調べてみたところ、あっさり解決策が見つかったのでここに残すことにする。
zstyle
のfake-files
を利用する
調べるとすぐにGitHubのIssueやCygwinのzshに関する質問が見つかった。
EdVanDance氏の投稿にある通り.zshrc
に下記の設定を追記することでCドライブ等のパス補完が有効になる。
# complete hard drives in msys2
drives=$(mount | sed -rn 's#^[A-Z]: on /([a-z]).*#\1#p' | tr '\n' ' ')
zstyle ':completion:*' fake-files /: "/:$drives"
unset drives