Fish shell重装后仍保留补全历史,是否遗漏卸载文件或共享zsh数据?
排查结论
- fish 不会和zsh共享任何历史命令、自动补全数据,两者的存储逻辑、路径完全独立,你遇到的残留问题是遗漏了fish其他默认存储路径的清理导致的。
你遗漏的清理路径
macOS下fish除了~/.config/fish存储用户自定义配置外,还有3类默认存储路径没有清理:
- 历史命令存储路径:
~/.local/share/fish/fish_history,这是你看到的历史记录残留的核心原因,该目录用于存储持久化的用户数据,不属于配置目录范畴 - 运行缓存路径:
~/.cache/fish/,存储fish运行时生成的补全索引、临时缓存数据,未清理的话会导致自动补全历史残留 - 全局配置路径:如果是通过Homebrew安装的fish,Intel芯片Mac全局配置存放在
/usr/local/etc/fish/,Apple Silicon芯片Mac存放在/opt/homebrew/etc/fish/,全局配置不会随用户目录配置删除而消失
完整卸载清理步骤
- 卸载fish本体,Homebrew安装的用户执行:
brew uninstall fish - 删除用户自定义配置:
rm -rf ~/.config/fish - 删除用户持久化数据(含历史记录):
rm -rf ~/.local/share/fish - 删除运行缓存:
rm -rf ~/.cache/fish - 可选:如果你之前修改过全局配置,对应芯片架构删除全局配置目录即可
内容的提问来源于stack exchange,提问作者spartanhooah
相关产品推荐
相关产品推荐

