看起来 f1 可以代替 control+shift+p。不知道为什么它会将这个键盘快捷方式列出来…
编辑:所以在我的一些电脑上,ctrl + shift + p 可以正常使用。可能是特定笔记本电脑上映射的冲突问题。
对于我来说,这个问题与Razer Cortex中的定时器设置有关。关闭了定时器功能后,问题得到了解决。
很可能是因为您的操作系统快捷键与 VSCode 快捷键冲突。而且很可能您的操作系统快捷键(在我们的情况下是 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.
左 Ctrl
按键。但是当我按下左 Shift
时,系统(Ubuntu)会处理任何 Ctrl + 任何 Shift
组合以进行布局更改。由于系统(Ubuntu)处理了这个重要事件,因此它不会在应用程序(VSCode)中发送此事件。因此,应用程序(VSCode)没有收到左 Shift
按键事件,因为它被系统(Ubuntu)中断了。任何
(左或右)的Ctrl+Shift
事件更改为监听右 Ctrl+右 Shift
(或左)事件。这样,系统将仅监听右侧键,并将左侧键发送到应用程序中。您无需修改应用程序快捷方式(只要它们没有使用完全正确或左侧的键)。任何
(默认)、左
和右
之间的重要性 :)右 Ctrl+右 Shift
来更改系统布局,在 VSCode 中使用左 Ctrl+左 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.
我在Windows和Ubuntu系统中都有Ctrl+Shift
组合键,但这个问题只在Ubuntu上出现。在Windows上正常工作。
对我来说,这个问题与预安装在我的联想笔记本中的英特尔图形命令中心相关。
我缩小了问题范围的最快方法是打开Windows任务管理器,逐个结束非必要服务,然后再次在VS Code中测试快捷方式。
按下 F1 或 Ctrl+Shift+P 打开命令面板。