vscode全局搜索唯一快捷键是ctrl+shift+f(win/linux)或cmd+shift+f(macos),用于整个工作区内容搜索;ctrl+f仅搜当前文件,ctrl+p搜文件名,ctrl+t搜符号定义。

搜不到命令?先确认你搜的是命令名还是快捷键组合
VSCode 的搜索框默认搜命令名(比如 format、toggle comment),不是快捷键。想查某个键组合(如 Ctrl+Shift+F)绑了谁,必须在快捷键设置界面(Ctrl+K Ctrl+S)里直接输入该组合——它会立刻列出所有命中项,末尾标出来源(Default、Prettier、keybindings.json)和 when 条件。
- 输
Ctrl+Shift+F后看到两条:一条是workbench.action.findInFiles(全局搜索),另一条是editor.action.formatDocument(格式化)→ 说明冲突已发生 - 悬停在任一项上,能看到
when值,比如editorTextFocus表示只在编辑器有焦点时生效;terminalFocus则只在终端生效 - 如果某条记录带黄色感叹号,代表它被多个命令共享,点开就能看到具体是哪几个命令在抢这个键
命令名找不到?可能是插件没暴露标题或拼写不标准
有些插件注册的命令不带用户友好的 title,比如 ESLint 插件的 eslint.executeAutofix,搜 eslint 或 autofix 都可能漏掉。这时不能靠猜,得去插件文档抄准命令 ID。
- 打开插件市场页,找对应插件的 README 或 GitHub Wiki,搜索 “command”、“keybinding” 关键词
- 部分插件会在设置页里显式列出可用命令,比如 Prettier 的设置项中就有
prettier.formatOnSave对应的命令名 - 在
keybindings.json中手动添加时,务必用完整命令名,少一个字母(如eslin.executeAutofix)会导致绑定静默失效
想反查某个键按下去到底触发了什么?用“录制快捷键”功能
VSCode 提供了一个隐藏但极实用的功能:点击快捷键设置界面右上角的麦克风图标(?️),然后按下你想查的组合键,它会自动定位到对应命令行,并高亮显示。
- 适合排查“为什么我按
Ctrl+Space没弹出补全?”这类问题——可能被输入法、系统快捷键或插件劫持了 - 如果录制后无反应,先检查焦点是否在编辑器内(
when条件限制);再看系统级快捷键是否占用了该组合(如 macOS 的 Spotlight 是Cmd+Space) - 该功能不会记录非 VSCode 原生命令(比如终端里的
Ctrl+C),只捕获编辑器能接收到的按键事件
直接改 keybindings.json 时,怎么确保命令名有效
图形界面里点铅笔改键是安全的,但手动编辑 JSON 容易写错命令名。验证方式很简单:在命令面板(Ctrl+Shift+P)里输入 >Developer: Toggle Developer Tools,打开控制台,然后在 Console 标签页里执行:
vscode.commands.getCommands().then(cmds => console.log(cmds.filter(c => c.includes('format'))))
- 这会列出所有含
format的命令 ID,帮你确认是否存在editor.action.formatSelection这类冷门变体 -
getCommands()返回的是当前已加载的命令,未启用的插件命令不会出现,所以要先确保插件已激活 - 注意大小写和点号位置,
editor.action.transformToUppercase和editor.action.transformToLowercase是两个独立命令,拼错一个字母就无效
emerald.languageServer.restart 这类 LSP 插件命令,只在打开对应语言文件后才存在。











