Sublime Text 大小写转换最稳方式是先按 Ctrl+K 松手再按 Ctrl+U/L;失效主因是未松键、只读状态、输入法拦截、插件劫持或光标位于字符串/注释中。

Ctrl+K 松手后再按 Ctrl+U(大写)或 Ctrl+L(小写)是 Sublime Text 原生最稳的大小写转换方式——不是三键连按,也不是“一键”,而是两段式触发;其他所有方式(包括自定义键、右键菜单、正则)都建立在这个基础逻辑之上。
为什么 Ctrl+K+U 没反应?常见失效原因
根本不是快捷键坏了,而是命令没被正确发出:
- 没松开
Ctrl+K就直接按U:Sublime 把它识别为Ctrl+K, Ctrl+K(删到行尾),或被输入法吞掉 - 文件右下角显示
RO(只读):操作静默失败,不报错也不生效 - 输入法处于中文状态(尤其 Windows 上搜狗、微软拼音):
Ctrl+K被系统拦截,后续键根本没传给 Sublime - 插件劫持了前缀键:比如
Emacs Pro Essentials或开启Vintage模式时,Ctrl+K已被重绑为删行 - 光标落在字符串或注释内(如 Python 的
"hello"或# comment):Sublime 默认跳过这些区域,不执行转换
upper_case 和 lower_case 命令的实际作用范围
它们完全依赖当前选区,没有上下文感知能力:
- 没选中任何文本 → 只转换光标所在单词(例如光标停在
userName中任意位置,只变USERNAME,不会动整行) - 选中含空格/标点的文本(如
"Hello World!")→ 整体转换为"HELLO WORLD!"或"hello world!" - 多行选中(Shift+↓ 或鼠标拖选跨行)→ 每行独立处理,不会合并逻辑或对齐格式
- 多光标(
Ctrl+D逐个选,或Ctrl+Click点出)→ 每个光标位置独立转换其所在词/选区,哪怕只覆盖一个字母也生效
整行、全文件或首字母大写,为什么不能只靠快捷键?
因为 Ctrl+K, U/L 只响应“已有选区”,无法自动识别行首、词边界或语义规则。必须用正则替换:
- 打开
Ctrl+H(替换面板),务必勾选Regular Expression(点.*按钮) -
\U$0\E:整个匹配项转大写(\E必须配对,漏写会导致后续所有文本变大写) -
\L$0\E:整个匹配项转小写 -
\u$0:仅匹配项首字符大写(注意是\u,不是\U;它只影响紧邻下一个字符) - 想每行首字母大写?
Find What填^[^\n],Replace With填\u$0,再点Replace All
哪些场景原生不支持,必须靠插件?
Sublime 默认功能非常克制,以下需求它不做:
- 驼峰命名(
user_name→userName)、短横线(api-key→apiKey)、下划线(first_name→firstName)转换 - 智能标题格式(
don't→Don't、iPhone→iPhone、multi-word→Multi-Word) - 句首大写(
hello. world.→Hello. World.) -
title_case命令本身只按空格切分,对撇号、连字符、缩写(如apiV2)完全无感
真要处理这些,Case Conversion 插件最常用;但装完后默认快捷键大概率被覆盖,且它的规则基于分隔符切词,不是语法感知——别指望它自动识别 JS 变量里的缩写。

















