sublime text keymap 是 vscode 1.80+ 官方维护的 microsoft 扩展,无需重启即可原生支持 ctrl+d 等经典操作;需设 "editor.multicursormodifier": "ctrlcmd" 恢复 ctrl+click 加光标,避免手动编辑 keybindings.json 引发冲突。

Sublime Text Keymap 扩展能直接启用全套经典操作,不用改配置、不重启、不踩坑——这是目前最稳的方案。
装完就用:认准 Microsoft 官方扩展
VSCode 从 1.80 版本起将 Sublime Text Keymap 列为官方维护扩展,发布者是 ms-vscode,不是第三方模拟器。
它重写了命令绑定逻辑,比如 Ctrl+D 真正触发 editor.action.addSelectionToNextFindMatch,而不是简单键位转发。这意味着多光标行为、Ctrl+Shift+L 拆行、Ctrl+Shift+K 删除整行等都原生对齐。
- 打开扩展面板(
Ctrl+Shift+X或Cmd+Shift+X) - 搜
Sublime Text Keymap,只认发布者为Microsoft或ms-vscode的那一项 - 点击安装,**无需重启**,新打开的文件立即响应
Ctrl+D、Ctrl+P等操作
Ctrl+Click 加光标失效?只差一个 setting
Sublime 的 Ctrl+Click(Windows/Linux)或 Cmd+Click(macOS)是加光标,VSCode 默认是“跳转到定义”。这不是快捷键没生效,而是行为策略不同。
只需在 settings.json 中加一行:
"editor.multiCursorModifier": "ctrlCmd"
保存后立刻还原 Sublime 行为;该设置只影响鼠标点击,不影响 Ctrl+D 或 Ctrl+Shift+L 等键盘操作。
- 打开设置界面(
Ctrl+,或Cmd+,)→ 右下角齿轮 →Open Settings (JSON) - 插入上面那行,确保 JSON 格式合法(逗号位置、引号闭合)
- 别碰
keybindings.json—— 这里只管鼠标,键盘映射由扩展全权负责
为什么手动编辑 keybindings.json 容易翻车
直接往 keybindings.json 里塞 Sublime 风格键位,看似灵活,实则埋雷。VSCode 的 when 条件判断比 Sublime 严格得多,比如漏写 editorTextFocus 或拼错命令名,就会导致快捷键静默失效。
-
{"key": "ctrl+d", "command": "editor.action.addSelectionToNextFindMatch"}缺少when,在终端面板或调试控制台里可能意外触发 - 多个插件同时绑定同一组合键时,优先级冲突难排查,而官方扩展已预设合理作用域
- VSCode 1.80+ 的扩展机制会自动处理平台差异(如 macOS 的
Cmdvs Windows 的Ctrl),手写 JSON 得自己分平台维护
个别快捷键没反应?先查是否被劫持
如果 Ctrl+Shift+L 没反应,大概率是其他插件覆盖了 editor.action.splitSelectionByLine 命令;Ctrl+P 失效则可能是文件索引未就绪或工作区过大。
- 打开命令面板(
Ctrl+Shift+P),输入Developer: Toggle Developer Tools,看控制台是否有报错 - 执行
Preferences: Open Default Keyboard Shortcuts (JSON),搜索对应命令名,确认是否被禁用或重绑 - 临时禁用所有非必要插件,只留
Sublime Text Keymap,验证是否恢复
when 条件和平台适配的隐性耦合。官方扩展已经把这层复杂度收进去了,别自己再绕进去。











