答案 0 :(得分:4)
好像f1工作而不是控制+ shift + p。不知道为什么它将其列为键盘快捷键......
编辑:所以在我的一些电脑上,ctrl + shift + p工作正常。不确定它是否与特定笔记本电脑上的映射冲突。
答案 1 :(得分:0)
很可能是因为您的OS键绑定与VSCode键绑定冲突。而且很可能是您的OS键盘绑定(在我们的例子中是Ctrl
+ Shift
)被绑定到了一些重要的东西上(例如,布局的更改),并且由于该系统将焦点从应用转移到了系统上,并且该应用无法接收keypress
事件。
任何应用程序都不能接收Ctrl-Shift-*
事件,不仅是VSCode 。
我正在使用Ubuntu,并且我设置了Ctrl+Shift
组合用于布局更改。之后,我打开开发者控制台(Developer: Toggle Keyboard Shortcuts Troubleshooting
)并进行了测试。这是日志:
[2020-09-13 11:28:35.706] [renderer1] [info] [KeybindingService]: / Received keydown event - modifiers: [ctrl], code: ControlLeft, keyCode: 17, key: Control
[2020-09-13 11:28:35.706] [renderer1] [info] [KeybindingService]: | Converted keydown event - modifiers: [ctrl], code: ControlLeft, keyCode: 5 ('Ctrl')
[2020-09-13 11:28:35.706] [renderer1] [info] [KeybindingService]: \ Keyboard event cannot be dispatched.
这里发生了什么?应用程序(VSCode)检测到Left Ctrl
按下。但是,当我按Left Shift
时,系统(Ubuntu)处理Any Ctrl+Any Shift
组合以更改布局。由于系统(Ubuntu)处理了此重要事件,因此它不会在应用程序(VSCode)中发送此事件。因此,该应用程序(VSCode)没有收到Left Shift
按键事件,因为它已被系统(Ubuntu)中断。
如果看到相同的内容,则说明问题的原因。
将系统Ctrl+Shift
(默认情况下,它监听Any
-左或右)事件更改为Right Ctrl+Right Shift
(或左)事件。在这种情况下,系统将仅侦听右键,并在应用程序中发送左键。您无需修改应用程序快捷方式(只要它们不完全使用向右或向左键)。
注意Any
(默认),Left
和Right
的重要性:)
在VSCode中,我使用Right Ctrl+Right Shift
进行系统布局更改,而在Left Ctrl+Left Shift+P
中使用命令调色板。
现在可以使用了:
[2020-09-13 11:57:47.607] [renderer1] [info] [KeybindingService]: / Received keydown event - modifiers: [ctrl], code: ControlLeft, keyCode: 17, key: Control
[2020-09-13 11:57:47.607] [renderer1] [info] [KeybindingService]: | Converted keydown event - modifiers: [ctrl], code: ControlLeft, keyCode: 5 ('Ctrl')
[2020-09-13 11:57:47.607] [renderer1] [info] [KeybindingService]: \ Keyboard event cannot be dispatched.
[2020-09-13 11:57:47.715] [renderer1] [info] [KeybindingService]: / Received keydown event - modifiers: [ctrl,shift], code: ShiftLeft, keyCode: 16, key: Shift
[2020-09-13 11:57:47.715] [renderer1] [info] [KeybindingService]: | Converted keydown event - modifiers: [ctrl,shift], code: ShiftLeft, keyCode: 4 ('Shift')
[2020-09-13 11:57:47.715] [renderer1] [info] [KeybindingService]: \ Keyboard event cannot be dispatched.
[2020-09-13 11:57:47.789] [renderer1] [info] [KeybindingService]: / Received keydown event - modifiers: [ctrl,shift], code: KeyP, keyCode: 80, key: P
[2020-09-13 11:57:47.790] [renderer1] [info] [KeybindingService]: | Converted keydown event - modifiers: [ctrl,shift], code: KeyP, keyCode: 46 ('P')
[2020-09-13 11:57:47.790] [renderer1] [info] [KeybindingService]: | Resolving ctrl+shift+[KeyP]
[2020-09-13 11:57:47.790] [renderer1] [info] [KeybindingService]: \ From 3 keybinding entries, matched workbench.action.showCommands, when: no when condition, source: user.
我在两个系统中都具有Ctrl+Shift
组合:Windows和Ubuntu。但是此问题仅在Ubuntu上发生。 Windows可以正常使用。
答案 2 :(得分:0)
对我来说,它与英特尔图形命令中心绑定在一起,它预装在我的联想笔记本电脑中。
我缩小这个问题的最快方法是打开 Windows 任务管理器,将非重要服务一一杀死,然后再次在 VS Code 中测试快捷方式。