You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何恢复Terminal中被禁用的Command-Q快捷键默认功能

如何恢复Terminal中被禁用的Command-Q快捷键默认功能

嗨,我来帮你搞定这个恢复Terminal默认Cmd+Q快捷键的问题!首先得明确:当你用defaults write把Terminal的Quit快捷键设为nil后,要恢复默认状态,得区分两种情况——你之前有没有自定义过这个快捷键,或者原本就是系统默认的Cmd+Q。

第一步:先备份当前的快捷键设置(程序启动时做)

在你临时禁用Cmd+Q之前,先把原来的设置读出来存好,这样后续才能准确恢复。执行这条命令:

original_quit_key=$(defaults read com.apple.Terminal NSUserKeyEquivalents 2>/dev/null | grep -A 1 '"Quit Terminal"' | tail -n 1 | tr -d ' ;"')

这条命令的作用是:

  • 2>/dev/null:如果系统原本没有自定义过这个快捷键,防止命令报错
  • grep -A 1:找到"Quit Terminal"那一行,并取出下一行的快捷键值
  • tr -d:去掉多余的引号、分号和空格,得到干净的快捷键字符串(默认的话会得到@q,@代表Command键)

第二步:临时禁用Cmd+Q(你的程序运行期间)

这一步你应该已经知道了,执行:

defaults write com.apple.Terminal NSUserKeyEquivalents -dict-add "Quit Terminal" nil

执行完后需要重启Terminal才能生效,你可以用AppleScript自动重启:

osascript -e 'quit app "Terminal"' && open -a Terminal

(注意:重启会关闭所有Terminal窗口,最好提前提示用户保存内容)

第三步:恢复默认快捷键(程序结束后)

根据之前备份的original_quit_key值,分两种情况处理:

  1. 如果之前有自定义快捷键(original_quit_key不为空):
    把原来的快捷键写回去:

    defaults write com.apple.Terminal NSUserKeyEquivalents -dict-add "Quit Terminal" "$original_quit_key"
    
  2. 如果原本是系统默认状态(original_quit_key为空):
    直接删除这个自定义的键,让Terminal回到默认设置:

    # 先删除"Quit Terminal"这个键
    defaults delete com.apple.Terminal NSUserKeyEquivalents "Quit Terminal" 2>/dev/null
    # 如果NSUserKeyEquivalents字典里已经没有其他自定义键了,也可以直接删除整个字典
    defaults delete com.apple.Terminal NSUserKeyEquivalents 2>/dev/null
    

不管哪种情况,恢复后都要再次重启Terminal才能生效,同样用AppleScript命令:

osascript -e 'quit app "Terminal"' && open -a Terminal

额外提醒

  • 这些命令需要Terminal有足够的权限,如果你遇到权限问题,可以在命令前加sudo(不过一般不需要,因为是用户级别的设置)
  • 如果你手动测试恢复,也可以直接打开Terminal的偏好设置→键盘,找到"Quit Terminal",把快捷键改回Cmd+Q,这样更直观

备注:内容来源于stack exchange,提问作者Lor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 09:43:02