惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Hugging Face - Blog
Hugging Face - Blog
Vercel News
Vercel News
C
Check Point Blog
G
Google Developers Blog
博客园 - 司徒正美
量子位
Engineering at Meta
Engineering at Meta
S
SegmentFault 最新的问题
Google DeepMind News
Google DeepMind News
F
Fortinet All Blogs
A
About on SuperTechFans
美团技术团队
D
DataBreaches.Net
Stack Overflow Blog
Stack Overflow Blog
Jina AI
Jina AI
Y
Y Combinator Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Apple Machine Learning Research
Apple Machine Learning Research
J
Java Code Geeks
MongoDB | Blog
MongoDB | Blog
人人都是产品经理
人人都是产品经理
H
Hackread – Cybersecurity News, Data Breaches, AI and More
The Cloudflare Blog
U
Unit 42

编程笔记

智元灵犀X2机器人二开02:端侧环境与第一个 AIMDK 程序 智元灵犀X2机器人二开01:认识灵犀 X2 与二开全景,端侧、云端与灵心平台 腾讯WorkBuddy海外版来啦,注册畅玩gpt-6-Astra,deepseek-4.1-flash限时免费 Tencent's WorkBuddy AI: Sign Up to Enjoy GPT-6-Astra and now DeepSeek-4.1-Flash is Free AI|大模型智力测试,鹈鹕SVG生成 Grok账号如何获取SSO cookie及如何在vscode中使用grok api 转载|一图看懂大模型性价比 谷歌云收入暴增82%、公募科技持仓突破60%:AI不会减速的七个铁证 AI|AI面试题,AI来解答 译|为什么 TypeScript 7.0 用 Go 重写 股票配债缴款操作指南 Deepseek大模型越狱/破甲提示词 用DeepSeek-V4-Pro大模型写长篇小说,网文 全网寻找的同花顺板块同列网页版来了!盯盘效率提升 5 倍的黑科技 等一个黄金坑:中海物业跌到什么价位,到手股息率能有6%? Claude Code(1)在 WSL Ubuntu 上安装和配置指南 (译)AI 裁员潮:亚马逊、微软等科技巨头将 2025 年裁员归因于人工智能 AI|L2和L3级自动驾驶有什么区别 AI|Gemini CLI 实用技巧与窍门 AI|Gemini CLI Tips & Tricks 限制 Microsoft Edge 浏览器的内存占用 (Repost)4.3 Million Browsers Infected,Inside ShadyPanda's 7-Year Malware Campaign (译)430万浏览器被感染,揭秘 ShadyPanda 持续 7 年的恶意软件活动 github Fine-grained personal access token 使用 必应搜索屏蔽垃圾网站 译|Linux 启动过程:从按下电源到内核 独立开发:AI图生图获得第一位付费用户,现在支持在线支付了 译|面试官引诱我安装恶意软件(我是如何在一次“工作面试”中差点被黑的) 译|在 Go 中防止 CSRF 的现代方法,CrossOriginProtection AI图生图:释放你的无限创造力,免费在线生成惊艳图像
解决Fish Shell中使用vfox报错,Lacks hook support
yigmmk · 2026-06-20 · via 编程笔记

在使用 vfox 管理多版本开发环境时,如果在 Fish Shell 中执行 vfox use -p <语言>@<版本> 命令,可能会遇到以下警告信息:

1
2
Warning: The current shell lacks hook support or configuration. It has switched to global scope automatically.
虽然命令执行了,但这并没有达到我们预期的效果。本文将带你分析该问题产生的原因,并提供一行代码的终极解决方案。

问题分析

首先,我们需要理解 vfox use -p(即 –persistent)参数的作用。该参数的作用是将特定的版本号绑定到当前目录(会在当前目录生成 .tool-versions 文件)。

为了实现“进入该目录自动切换版本,离开该目录自动恢复版本”的功能,vfox 必须在 Shell 中挂载目录切换钩子(例如监听 cd 命令)。

报这个警告,说明 vfox 没有在当前的 Fish Shell 中正确激活,导致它找不到所需的钩子环境。为了不中断你的命令,它只能退而求其次,将版本设置到了全局作用域中。

解决方案

问题的核心在于:vfox 的激活脚本没有在 Fish Shell 启动时被正确加载,或者加载的方式不兼容非交互式环境。

我们只需要修改 Fish 的配置文件 ~/.config/fish/config.fish,将激活命令限制在交互式 Shell 中执行即可。

第一步:打开配置文件
在终端中执行以下命令编辑配置文件(如果没有安装 nano,也可以使用 vim):

1
2
3
if status is-interactive
vfox activate fish | source
end

重启终端或运行 source ~/.config/fish/config.fish 使配置生效

在 Fish Shell 中使用各类版本管理工具(如 vfox、fnm、mise 等)时,凡是涉及到 –use-on-cd 或挂载钩子的功能,都建议使用 if status is-interactive … end 将其初始化代码包裹起来,这能避免 90% 以上的 Shell 兼容性报错。