sublime text 的 upper_case 命令必须通过 ctrl+k(或 cmd+k)前缀后松手再按 u 触发,非三键组合;失效常见原因包括连按、只读模式、中文输入法、插件劫持或光标位置不当;可自定义 ctrl+shift+u 绑定,但需编辑 user 键绑定文件。

upper_case 命令不能靠单键触发,必须走 Ctrl+K(Windows/Linux)或 Cmd+K(macOS)前缀流程——这是 Sublime 的硬性设计,不是快捷键没配对或插件问题。
为什么 Ctrl+K+U 按了没反应?
这不是三键组合,而是两段式命令前缀机制:Ctrl+K 本身不执行任何操作,只表示“接下来的按键请交给大小写子命令处理”。常见失效原因包括:
- 连按
Ctrl+K+U不松手 → 触发的是Ctrl+K, Ctrl+K(删到行尾)或其他冲突命令 - 文件右下角显示
RO(只读)→ 转换静默失败,无提示 - 输入法处于中文状态(尤其搜狗、微软拼音)→
U键被系统吞掉 - 插件(如 Case Conversion、Vintage 或 Emacs Pro Essentials)劫持了
Ctrl+K前缀 → 原生命令被屏蔽 - 光标落在字符串字面量或注释内,且当前语法高亮模式跳过该区域 → 无响应
怎么正确触发大写转换?
确认已选中文本(哪怕只选一个字母),然后执行:
- Windows/Linux:
Ctrl+K→ 松手 →U(注意:是单独按U,不是Ctrl+U) - macOS:
Cmd+K→ 松手 →U(同样,不是Cmd+U)
没选中任何文本时,U 只作用于光标所在单词(例如光标停在 userName 中任意位置,结果是 USERNAME),不会影响整行。
想真的一键用 Ctrl+Shift+U?改 User 键绑定
原生不支持单键触发,但可以自定义。关键点:
- 只能编辑
Preferences → Key Bindings右侧的「User」面板(左侧 Default 是只读的,升级必丢) - 命令名必须是
upper_case,拼错会报command not found - 粘贴以下内容进 User 面板即可生效(无需重启):
[{"keys": ["ctrl+shift+u"], "command": "upper_case"}]
多光标、多行选中、含空格/标点的字符串都会被整体转换;但要注意:upper_case 是纯文本覆盖,不识别语义(比如不会跳过引号内的字符串)。
批量或语义化转换?别硬扛快捷键
如果目标是整行转大写、JSON key 统一小写、或首字母大写(title case),快捷键就力不从心了:
-
Ctrl+H打开替换面板,勾选Regular Expression(点.*按钮) - 用
\U$0\E安全转大写(漏掉\E会导致后续所有文本被强制大写) -
\u$0只让匹配项首字符大写(注意是小写u,不是\U) -
title_case命令(Ctrl+K, Ctrl+C)只按空格分词,对user_name、iPhone、XMLHttpRequest完全无效
最易被忽略的是:\U 和 \E 必须成对出现,且 \E 是唯一终止符——这个细节一旦漏掉,修改范围会失控,而且很难立刻发现。











