lab/note/资源/DevOps/vscode快捷键.md
张育新 be711334fb docs(note): 添加笔记目录及 gitignore 规则
- 新增 note 目录包含 AI、SQL、Golang、网络等多领域学习笔记
- 更新 .gitignore 添加 note/assets/ 和 note/项目/ 忽略规则
2026-07-10 09:24:40 +08:00

6.3 KiB
Raw Blame History

配置文件位置

C:\Users\admin\AppData\Roaming\Code\User\keybindings.json

该文件保存的是用户级快捷键列表,每一个快捷键配置都是包含keycommandwhen(可选)字段

字段 作用
key 你按下的键盘组合
command 要执行的命令 ID
when 规定这条快捷键在什么“语境”下生效

完整示例:

  // markdown 代码块
  {
    "key": "ctrl+shift+`",
    "command": "markdown.extension.editing.toggleCodeBlock",
    "when": "editorTextFocus && editorLangId == 'markdown'"
  },

按键的书写规则

基本格式

  • 全小写:修饰键和字母键都要小写,写 ctrl 而不是 Ctrl,写 a 而不是 A
  • + 连接:按键之间用加号连接,不带空格。例如 ctrl+shift+a
  • 修饰键顺序任意ctrl+alt+aalt+ctrl+a 效果相同,但习惯按 ctrl -> shift -> alt -> 字母 的顺序写

支持的修饰键

修饰键 写法 说明
Ctrl ctrl Windows / Linux 上常用 ctrlmacOS 对应 cmd
Shift shift
Alt alt macOS 上是 opt(或者也支持 alt
Cmd (Mac) cmd 在 Windows 上无效,建议用 ctrl 兼顾跨平台
Win (Windows) win 很少用
Meta (macOS) meta 通常等同 cmd

特殊按键名称

按键 写法
方向键 up down left right
功能键 f1 ~ f19
回车 enter
空格 space
退格 backspace
Tab tab
反引号 ``` (就是 backtick)
逗号、句号 , . 等直接写符号本身
数字键 0~9
计算器小键盘 numpad0 ~ numpad9numpad_add

按键组合

VS Code 支持二段按键(一次按键序列),写法是:

"key": "ctrl+k ctrl+b"

意思是先按 Ctrl+K,松开后再按 Ctrl+B

命令ID

command 是一个全局唯一的字符串,由扩展或 VS Code 自己注册。不能自己编造,必须使用确切的 ID。

通过ctrl+k ctrl+b按键组合或者在设置中点击“键盘快捷方式”即可查看当前能设置的所有的命令。虽然显示的是命令但是实际上是命令的名字右键可以获取命令的ID。也可以不通过修改配置文件在图形化界面设置快捷键。

上下文条件表达式

when 是一个布尔表达式,只有计算结果为 true 时,快捷键才会触发,可以组合变量使用逻辑运算符。

常用上下文变量

变量 说明 常见值
editorTextFocus 焦点是否在编辑器的文本区域(光标可以输入文字) true / false
editorLangId 当前编辑器的语言 ID不是文件后缀 "markdown", "javascript", "python"
editorHasSelection 编辑器里是否有文本被选中 true / false
isLinux, isWindows, isMac 当前操作系统 true / false
resourceExtname 当前文件的后缀名(带. ".md", ".js"
activeEditor 是否有激活的编辑器 true / false
terminalFocus 焦点是否在集成终端 true / false
listFocus 焦点在列表/树视图吗 true / false

逻辑运算符

运算符 含义
&&
`
!
==, != 等于 / 不等于(字符串)
=~ 正则匹配(例如:`editorLangId =~ /^markdown$
in 测试左侧值是否在给定的右值数组里,如 editorLangId in ['markdown', 'rmd']

例子分析

"when": "editorTextFocus && editorLangId == 'markdown'"

表达式含义:确保你正在编辑文本,而不是在侧边栏、终端或其他地方并且当前文件被 VS Code 识别为 Markdown 语言

常见问题排查

现象 可能原因
按键完全没反应 command 拼写错误;when 条件一直为 false扩展未激活
在其他语言文件里也生效了 缺少 editorLangId == 'xxx' 限制,考虑加上
一次性按了没反应,但按键序列可以 可能你定义成了 chord但习惯是单键
提示 “command 'xxx' not found” 命令 ID 不存在,检查扩展是否已安装并启用