操作系统:Windows11
1、现象
在 VSCode 中按 Ctrl+,
组合键没反应(本来应该是打开设置页面的)。
更怪的是,只是在打开的文件中按才没有反应,如果打开某个扩展的详情介绍页面、或者新开一个空窗口(不打开任何文件),再按它又正常反应了……
2、排查原因
-
按
Ctrl+k Ctrl+s
检查快捷键绑定,没有改动、绑定的操作没有问题。
检查改快捷键“惯犯”搜狗输入法以及其他一些自用软件,设置的也没有问题。
其实现象里的有时能正常起效也可以说明,组合键的信号是能够被 VSCode 接收到的,只是跟 VSCode 所处的状态有关,而要感知到 VSCode 所处是什么状态 一般情况下其他软件也不容易做到,基本上不会是其他普通软件的问题。 -
谜题揭晓,罪魁祸首就是操作系统——Windows……
系统设置里语言输入部分有个藏得很深的热键设置(路径为设置 -> 时间和语言 -> 输入 -> 高级键盘设置 -> 语言栏选项 -> 高级键设置
,如下图),把组合快捷键给绑定到了输入法切换相关的操作。其中第二个 切换到搜狗输入法 占用了Ctrl+COMMA
(comma=逗号,) 组合键,最后一个占用了Ctrl+空格
。
最恶心的是 这个设置之前已经手动改过了 它又给改回去了(而且最后一个切换甚至不让设置为“无”,一确定应用就会立刻恢复)…… -
至于部分场景起效的奇怪现象,原因应该是,在打开的文件中时用户可以输入,快捷键就被系统优先用来切换输入法(我本来就在用搜狗,所以切换到搜狗等于啥也没做),而在不接收输入的界面,系统识别到不是输入法相关,才放弃快捷键的控制权,顺位给 VSCode 用。
3、解决方法
上面图示的设置,被系统设成 Ctrl+COMMA
的第二个可以设置为取消勾选“启用按键顺序”(也就是设置为“无”),被系统设成 Ctrl+空格
的最后一个只能设成一个不常用的组合键了。
当然,如果有需求,也都可以自由设置成喜欢的组合键。
最后,这个设置说不定过多久 Windows 又会给改回去默认值(不幸中的万幸,还不至于频繁到每天都要改orz),到时候发现了再过来改就得了。