Ctrl+Shift+B在Linux下失效90%因fcitx劫持,需在fcitx全局配置中清空该快捷键绑定并重启;Sublime多行注释需先Ctrl+Shift+L转多光标再Ctrl+/;User.sublime-keymap须严格JSON格式,禁用注释与尾逗号;Esc关闭面板为内核行为,勿在键绑中覆盖。

Ctrl+Shift+B在Linux下不触发构建?先查fcitx是否劫持
Linux下Ctrl+Shift+B失效,90%是输入法fcitx在后台偷偷占用了这个组合键——它默认把Ctrl+Shift+B设为「切换输入法」快捷键,且不提示、不冲突警告,直接吞掉按键事件。
- 打开fcitx配置:右键任务栏fcitx图标 → «配置» → «全局配置» → «高级»选项卡
- 找到
Ctrl+Shift+B那一行,点击后按Esc清空绑定(不是禁用,是设为空) - 重启fcitx服务:
fcitx -r,或直接注销重登录(改完不会立即生效) - 验证方式:打开Sublime控制台
Ctrl+`,输入sublime.log_input(True),再按Ctrl+Shift+B——如果控制台完全没输出,就是fcitx还在拦截
多行注释Ctrl+/只注释第一行?别信“选中就生效”
Sublime的Ctrl+/本质是「逐行判断+切换」,不是「区域整体包裹」。选中5行代码,其中第2行已带#,第4行是空行,那它只会给第1、3、5行加/删注释符,看起来像“只动了一行”。
- 干净操作法:先
Ctrl+Shift+L将选中行转为多光标,再按Ctrl+/——每行强制执行一次切换,结果可预期 - 检查右下角语法标识:如果是
Plain Text或Text,Ctrl+/压根不工作;必须手动切到Python、JavaScript等对应语言 - 某些插件(如
Comment)会覆盖原生行为,临时禁用插件测试,能快速排除干扰
自定义快捷键写进User.sublime-keymap却无效?JSON格式正在静默失败
Sublime加载User.sublime-keymap时,一个中文逗号、一个单引号、数组末尾多的逗号,都会让整份配置静默失效——右下角可能闪一下红字错误,但多数人根本没看见。
- 必须用英文双引号:
"keys"不能写成‘keys’或“keys” - 数组结尾不能有逗号:
["ctrl+alt+f"],是错的,["ctrl+alt+f"]才对 - JSON不支持
//注释,想临时禁用某条绑定,直接删整行,或改成"command": "not_a_real_command" - 保存后立即生效,不用重启,但得确认没其他插件在更靠后的位置又绑了同一组
keys
Esc关不了命令面板?别往Key Bindings里硬塞
Esc关闭搜索框、命令面板、替换栏,是Sublime内核硬编码行为,不走任何.sublime-keymap文件。你在User.sublime-keymap里加{"keys": ["escape"], "command": "xxx"}不仅无效,还会破坏原生逻辑——比如按了Esc,面板卡住不动。
真正该查的是:是否启用了Vintage插件并进入了Insert模式(此时Esc要先退出Vim模式),或者Origami插件开启了close_on_escape。这些都得去对应插件的Settings里关,不是Key Bindings的事。


















