在MSYS2的ZSH中自由补全Windows路径

在MSYS2中使用zsh有一个问题:如果需要访问windows路径,zsh的自动补全插件是不认识像/d/下载这样的路径的,因为ls /确实没有/d/这样的路径存在,是系统调用的时候,才会告诉你确实可以从/d/读到数据。

此问题可以用zsh补全插件的fakepath概念解决。如下脚本会在zsh启动时自动配置所有磁盘的fakepath,不是频繁使用U盘的话足够了。

# 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
  • 最后更改: 2022/01/24 04:37