我正在尝试更改 macOS 中 zsh 完成缓存文件的默认位置。我已阅读完成时的 zsh 文档,其中说“或者,可以通过 'compinit -d dumpfile' 给出显式文件名”,我设置了 ZCOMPCACHE 变量并继续执行以下代码:
ZCOMPCACHE="$HOME/.cache/zsh/zcompcache"
# Create the parent directory if it doesn't exist
[[ -d $ZCOMPCACHE ]] || mkdir -p $ZCOMPCACHE
# Set the custom location for zcompdump files
_comp_files=($HOME/.cache/zsh/zcompcache(Nm-20))
if (( $#_comp_files )); then
compinit -i -C -d "$HOME/.cache/zsh/zcompcache/.zcompdump-${ZSH_VERSION}"
else
compinit -i -d "$HOME/.cache/zsh/zcompcache/.zcompdump-${ZSH_VERSION}"
fi
# `unset` the temporary variable
unset _comp_files
该代码运行并在 .cache/zsh 下创建 zcompcache 目录,并将缓存文件转储到该位置。
但是,即使我设置了特定位置,我仍然会在 $HOME 目录中转储一个 .zcompdump 文件。
我曾经使用 oh-my-zsh,但我发现它对于我的要求来说太臃肿了,之前的 oh-my-zsh 配置是否留下了任何残留设置,可能会导致我的 $HOME 目录中出现额外的 .zcompdump?