Ctrl+Shift+V在多行编辑时不弹历史面板,是因为Sublime原生绑定为paste_and_indent,跳过插件流程;需改用未占用键如Ctrl+Alt+V并正确配置JSON。

Ctrl+Shift+V 在多行编辑时不弹历史面板?
这不是插件坏了,是 Sublime 原生把 Ctrl+Shift+V 绑定为 paste_and_indent,根本没走插件的 paste_from_history 流程。多光标状态下,Sublime 会优先执行缩进粘贴逻辑,直接跳过插件监听。
- 必须换一个未被占用的组合键,比如
Ctrl+Alt+V
- 先关掉 Ditto、微信、QQ 等可能劫持该组合的系统级工具
- 在用户键位文件中添加:
[{"keys": ["ctrl+alt+v"], "command": "paste_from_history"}]
- 保存后立即生效,无需重启
Mac 上 Cmd+Shift+L / Cmd+D 失效?先看按键有没有进编辑器
macOS 下这类快捷键失效,90% 是被系统或输入法截断,不是 Sublime 配置问题。
- 按
Ctrl+` 打开控制台,输入 sublime.log_input(True)
- 再按
Cmd+Shift+L:如果控制台无任何输出,说明信号没进 Sublime
- 重点检查:
- 系统设置 → 键盘 → 快捷键 → 输入源(是否启用了
Cmd+Space 或 Cmd+Shift 切换)
- 搜狗/百度输入法的「高级文字服务」是否开启(需关闭并彻底重启 Sublime 进程)
- Spotlight 是否占用了
Cmd+Shift+P(可改用 Ctrl+Shift+P)
插件快捷键被覆盖?加载顺序决定谁说了算
Sublime 的快捷键绑定按固定顺序加载:Default.sublime-keymap → 插件自带的 Default.sublime-keymap → 用户 Preferences.sublime-settings 不影响快捷键,真正起作用的是 Default (OS).sublime-keymap 和 User.sublime-keymap。
- 打开
Preferences → Key Bindings,左右对比
- 在左侧(Default)搜
"keys": ["ctrl+d"],确认原生命令是 find_under_expand
- 在右侧(User)和
Packages/Vintage/Default.sublime-keymap 等插件目录里全局搜索同一 keys 字段
- 常见“高危插件”:Vintage、Emmet、Origami、SideBarEnhancements
- 临时验证:用
subl --safe-mode 启动,若快捷键恢复,就是插件冲突
User.sublime-keymap 写错 JSON 就等于没写
这个文件是纯 JSON 数组,语法错误不会报错,而是整份配置静默失效。
- 所有键名和字符串值必须用英文双引号,
"keys" 不是 keys
- 数组结尾不能多逗号:
["ctrl+alt+f"], 是错的,["ctrl+alt+f"] 才对
- 不支持
// 注释;要禁用某条绑定,删整行,或改成 "command": "not_a_real_command"
- 修改后按
Ctrl+S 保存即生效,但必须确保没有其他插件在更靠后的位置又绑了一次相同组合
Ctrl+Alt+V
[{"keys": ["ctrl+alt+v"], "command": "paste_from_history"}]- 按
Ctrl+`打开控制台,输入sublime.log_input(True) - 再按
Cmd+Shift+L:如果控制台无任何输出,说明信号没进 Sublime - 重点检查:
- 系统设置 → 键盘 → 快捷键 → 输入源(是否启用了
Cmd+Space或Cmd+Shift切换) - 搜狗/百度输入法的「高级文字服务」是否开启(需关闭并彻底重启 Sublime 进程)
- Spotlight 是否占用了
Cmd+Shift+P(可改用Ctrl+Shift+P)
- 系统设置 → 键盘 → 快捷键 → 输入源(是否启用了
插件快捷键被覆盖?加载顺序决定谁说了算
Sublime 的快捷键绑定按固定顺序加载:Default.sublime-keymap → 插件自带的 Default.sublime-keymap → 用户 Preferences.sublime-settings 不影响快捷键,真正起作用的是 Default (OS).sublime-keymap 和 User.sublime-keymap。
- 打开
Preferences → Key Bindings,左右对比
- 在左侧(Default)搜
"keys": ["ctrl+d"],确认原生命令是 find_under_expand
- 在右侧(User)和
Packages/Vintage/Default.sublime-keymap 等插件目录里全局搜索同一 keys 字段
- 常见“高危插件”:Vintage、Emmet、Origami、SideBarEnhancements
- 临时验证:用
subl --safe-mode 启动,若快捷键恢复,就是插件冲突
User.sublime-keymap 写错 JSON 就等于没写
这个文件是纯 JSON 数组,语法错误不会报错,而是整份配置静默失效。
- 所有键名和字符串值必须用英文双引号,
"keys" 不是 keys
- 数组结尾不能多逗号:
["ctrl+alt+f"], 是错的,["ctrl+alt+f"] 才对
- 不支持
// 注释;要禁用某条绑定,删整行,或改成 "command": "not_a_real_command"
- 修改后按
Ctrl+S 保存即生效,但必须确保没有其他插件在更靠后的位置又绑了一次相同组合
Preferences → Key Bindings,左右对比"keys": ["ctrl+d"],确认原生命令是 find_under_expand
Packages/Vintage/Default.sublime-keymap 等插件目录里全局搜索同一 keys 字段subl --safe-mode 启动,若快捷键恢复,就是插件冲突- 所有键名和字符串值必须用英文双引号,
"keys"不是keys - 数组结尾不能多逗号:
["ctrl+alt+f"],是错的,["ctrl+alt+f"]才对 - 不支持
//注释;要禁用某条绑定,删整行,或改成"command": "not_a_real_command" - 修改后按
Ctrl+S保存即生效,但必须确保没有其他插件在更靠后的位置又绑了一次相同组合
复杂点在于:同一个快捷键可能在不同 context 下绑定不同行为,比如只在命令面板打开时才生效。表面查不到冲突,实则条件不满足——这比语法错误更难发现。


















