MacOS Sierra下VS Code终端无法终止进程,转系统后遇操作难题
刚从Windows转Mac的时候,我也踩过这个一模一样的坑!本来Mac自带终端用Cmd+.就能轻松终止进程,结果到了VS Code里,Ctrl+C和Cmd+C全不管用,每次只能关掉终端窗口,烦得不行。后来折腾了一阵,终于搞明白问题出在哪,给你分享几个实用的解决办法:
原因分析
Windows和Mac的终端快捷键逻辑本来就有差异:Windows终端默认用Ctrl+C发送中断信号,而Mac系统终端的传统中断快捷键是Cmd+.。VS Code作为跨平台工具,默认的终端快捷键可能没和Mac系统习惯对齐,再加上可能存在快捷键冲突、shell配置干扰,就导致你遇到的问题了。
具体解决步骤
检查VS Code终端的中断快捷键设置
打开VS Code的设置(快捷键Cmd+,),在搜索框输入terminal interrupt,找到「Terminal: Interrupt」选项。看看它的快捷键是不是被修改或者未配置——默认应该是Ctrl+C,但有时候会和其他插件的快捷键冲突。你可以点击快捷键输入框,按下你习惯的组合键(比如Ctrl+C或者Cmd+.),保存后再试试,一般这一步就能解决问题。试试Mac原生的
Cmd+.快捷键
有些情况下,VS Code终端其实支持Cmd+.,只是你可能没尝试过。我自己后来就把中断快捷键改成了Cmd+.,和系统终端保持一致,用起来顺手多了。排查shell配置的干扰
如果你用的是zsh(Mac默认shell),比如装了oh-my-zsh这类工具,某些插件可能会修改信号处理逻辑。可以暂时把~/.zshrc里的插件注释掉,重启VS Code终端试试,排除插件干扰的可能。重置VS Code的终端默认配置
如果上面都不行,试试重置终端配置:打开命令面板(Cmd+Shift+P),输入Terminal: Select Default Profile,重新选择你的默认shell(比如zsh),然后重启VS Code,很多时候能解决莫名其妙的终端问题。
内容的提问来源于stack exchange,提问作者Alex

