sublime大小写转换需先按ctrl+k松手再按ctrl+u/l,仅作用于选区且不跨行/跨光标;整行或语义转换(如首字母大写)须用正则替换配合\u$0\e等语法。

Ctrl+K松手后再按Ctrl+U/L才是正确触发方式
Sublime 的大小写转换不是三键连按,Ctrl+K 本身不执行任何操作,它只是命令前缀。必须先按 Ctrl+K → 松手 → 再单独按 Ctrl+U(大写)或 Ctrl+L(小写)。连按不松手,系统会识别为其他命令(比如 Ctrl+K, Ctrl+K 删到行尾),根本不会触发大小写转换。
常见失效场景包括:
- 文件右下角显示
RO(只读),操作静默失败,需先取消只读或另存为 - 输入法处于中文状态(尤其 Windows 上搜狗、微软拼音),
Ctrl+K被系统拦截 - 插件劫持了前缀键,比如启用 Vintage 模式或 Emacs Pro Essentials,
Ctrl+K可能被重绑为删行 - 光标落在字符串或注释内,Sublime 默认跳过这些区域,即使选中也不生效
多行选中后每行独立处理,不跨行合并逻辑
用鼠标拖选多行、Shift+↑/↓ 或 Ctrl+A 全选后执行 Ctrl+K → 松手 → Ctrl+U,结果是每行各自转换,不会把所有行拼成一串再转——这点和 VS Code 不同,也意味着你无法靠这个快捷键实现“首字母大写”或“驼峰命名”这类语义转换。
例如选中以下三行:
user_name api_endpoint db_config
转大写后变成:
USER_NAME API_ENDPOINT DB_CONFIG
而不是 UserName 这类格式。需要这种效果得用插件或正则。
多光标批量改变量名时,每个光标只作用于其所在词
适合统一修改字段名、函数名等场景。操作路径是:Ctrl+D 逐个选中相同词(如所有 user_name),或 Ctrl+鼠标左键点出多个光标,确保每个光标都落在目标词上(哪怕只覆盖一个字母),再执行 Ctrl+K → 松手 → Ctrl+U。
注意几个关键点:
- 每个光标独立处理,不会跨光标对齐或合并逻辑
- 如果某个光标落在空格或标点上,该位置不触发转换
- 光标落在单词中间(如
u|ser_name),默认仍整词转换,不是只转光标右侧 - 若想只转部分字符(如只转下划线后首字母),快捷键做不到,得进正则替换
整行/全文件转大写必须用正则替换,\U$0\E 不能漏 \E
内置快捷键只响应已有选区,没法自动识别“每行开头”或“所有单词”。要批量处理整行、全文件或带条件的转换,必须打开 Ctrl+H → 勾选 Regular Expression(点 .* 按钮)→ 在 Replace With 输入大小写控制语法。
常用写法:
-
\U$0\E:整个匹配项转大写($0是完整匹配,\E必须配对,漏掉会导致后续所有文本变大写) -
\L$0\E:全部转小写 -
\u$0:仅匹配项首字符大写(注意是\u,不是\U;它只影响紧邻下一个字符) - 想每行首字母大写?
Find What填^[^\n],Replace With填\u$0,再点Replace All
最容易翻车的是 \U$1 后面没加 \E,结果从捕获组开始直到行尾全被强制大写——这不是 bug,是 Sublime 正则引擎的设计逻辑,\U 是开启模式,\E 是显式终止。











