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

推荐订阅源

N
Netflix TechBlog - Medium
I
Intezer
人人都是产品经理
人人都是产品经理
F
Full Disclosure
A
About on SuperTechFans
罗磊的独立博客
大猫的无限游戏
大猫的无限游戏
Google DeepMind News
Google DeepMind News
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
J
Java Code Geeks
博客园 - 三生石上(FineUI控件)
腾讯CDC
Stack Overflow Blog
Stack Overflow Blog
云风的 BLOG
云风的 BLOG
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Blog — PlanetScale
Blog — PlanetScale
Microsoft Azure Blog
Microsoft Azure Blog
I
InfoQ
博客园 - 司徒正美
P
Proofpoint News Feed
宝玉的分享
宝玉的分享
Engineering at Meta
Engineering at Meta
F
Fortinet All Blogs
The GitHub Blog
The GitHub Blog
L
LangChain Blog
Last Week in AI
Last Week in AI
B
Blog
Project Zero
Project Zero
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
S
Schneier on Security
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
U
Unit 42
B
Blog RSS Feed
Y
Y Combinator Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
P
Privacy International News Feed
N
News and Events Feed by Topic
W
WeLiveSecurity
Cloudbric
Cloudbric
G
GRAHAM CLULEY
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
C
Check Point Blog
G
Google Developers Blog
The Last Watchdog
The Last Watchdog
Latest news
Latest news
S
Secure Thoughts
Simon Willison's Weblog
Simon Willison's Weblog
Scott Helme
Scott Helme
H
Heimdal Security Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog

编程笔记

译|为什么 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图生图:释放你的无限创造力,免费在线生成惊艳图像 AI & Tech 最新发展 Serverless|在阿里云FC上部署Go,构建环境中GO版本的切换 AI|Gemini CLI,自定义斜杠命令(译) AI|Gemini CLI,Custom slash commands(转载)
解决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 兼容性报错。