macOS 无法自定义 Finder 隐藏文件快捷键,因该功能由 CoreServices 硬编码实现,仅识别 Command+Shift+.;其他方案均违反系统安全机制。

你在Mac上想把访达隐藏文件的显示/隐藏快捷键从默认的 Command+Shift+. 换成别的组合,比如 Command+Option+H,却发现系统根本不提供这个设置入口——这是因为 macOS **根本没开放自定义 Finder 快捷键的功能**,所有 Finder 相关快捷键(包括隐藏文件切换)都是硬编码在系统二进制中的,无法通过偏好设置、终端命令或任何公开 API 修改。
为什么不能改 Finder 的隐藏文件快捷键
macOS 的 Finder 快捷键逻辑由 CoreServices 框架固化实现,【Command+Shift+. 是唯一被系统识别并响应的隐藏文件切换组合】。你尝试用“键盘”系统设置里的“快捷键→应用程序快捷键”添加新规则,对 Finder 完全无效;Automator 或 Karabiner-Elements 等工具也只能模拟按键,无法让 Finder 把新组合识别为“切换隐藏文件”动作——它只会当成普通按键流处理,不会触发隐藏文件显示逻辑。
这个限制不是疏漏,而是 Apple 为保证 Finder 稳定性与一致性做的主动封禁。所有已知绕过方案(如重写 Finder 二进制、注入 dylib、hook Mach-O 符号)均会导致系统签名失效、SIP 触发、升级后崩溃,且违反 macOS 最终用户许可协议。
替代方案:用终端命令绑定新快捷键触发原生行为
虽然不能改 Finder 自身快捷键,但你可以用终端命令 + 快捷键管理工具,实现“按你想要的键 → 执行隐藏文件开关命令”。这本质是绕过 Finder 快捷键层,直接操作其偏好并刷新进程。
方法一:用 defaults + killall 实现一键切换(推荐)
1、打开“终端”,粘贴执行以下命令创建切换脚本:
cat > ~/toggle_hidden.sh if [ "$(defaults read com.apple.finder AppleShowAllFiles)" = "true" ]; then
defaults write com.apple.finder AppleShowAllFiles -bool false
else
defaults write com.apple.finder AppleShowAllFiles -bool true
fi
killall Finder
EOF
chmod +x ~/toggle_hidden.sh
2、这条命令会生成一个可执行脚本,它先读取当前状态,再反向写入布尔值,最后强制重启 Finder —— 效果和手动输两条命令一样,但只需运行一次脚本。
3、接下来,用系统自带的“快捷键”设置把脚本绑定到任意组合键:前往“系统设置→键盘→快捷键→服务→通用”,找到刚创建的脚本(需先在访达中右键它→“快速操作”→勾选“在菜单栏中显示”),然后双击右侧空白处,按下你想用的新快捷键,例如 Command+Option+H。
注意:【必须先在访达中对脚本启用“快速操作”并勾选菜单栏显示,否则系统设置里根本看不到它】。
验证与使用
完成绑定后,任意时刻按下你设定的新快捷键(如 Command+Option+H),终端脚本立即执行,Finder 闪退重启,隐藏文件状态随之切换——图标显示/消失,效果与原生 Command+Shift+. 完全一致,只是触发路径不同。
这一步操作起来很简单,不需要记住两行命令,也不用每次开终端,按一下就生效。

















