多光标大小写转换需先布局再分步触发快捷键,每个光标独立作用于所在单词上下文,不统一语义规则;机械转换无法实现首字母大写等语义操作,须结合正则替换。

多光标选中后怎么触发大小写转换
必须先完成多光标布局,再用两段式快捷键:先按 Ctrl+K(Windows/Linux)或 Cmd+K(macOS)→ 松手 → 再按 Ctrl+U(大写)、Ctrl+L(小写)等。连按不松手会失效,系统根本收不到命令。
- 多光标可以是
Ctrl+D逐个匹配相同词(比如所有user_name),也可以是Ctrl+鼠标左键点出任意位置的光标 - 每个光标只要落在一个“可识别单词”上(如字母、下划线、数字组成的连续块),就会独立触发转换;若落在空格、标点或注释内,则该光标静默跳过
- 即使只覆盖单词中一个字母(比如光标在
u|ser_name的 u 后面),整个user_name仍会被整词处理
为什么多光标转完大小写结果不一致
不是 Bug,是 Sublime 的设计逻辑:每个光标严格作用于其所在上下文,不跨光标对齐、不统一语义规则。常见表现有:
- 一个光标在
api_endpoint,另一个在XMLHttpRequest→ 前者转成API_ENDPOINT,后者变成xmlhttprequest(因为XMLHttpRequest被识别为单个驼峰词,而非三个单词) - 一个光标在字符串字面量里(如 Python 的
"user_name"中),另一个在变量名位置 → 字符串内的那个可能被跳过(取决于语法高亮和插件策略) - 多个光标横跨不同行,但某行末尾有空格或制表符 → 那个光标若停在空白处,不触发任何转换
多光标 + 正则替换才能搞定语义转换
内置多光标快捷键只做“机械转换”,无法实现首字母大写、驼峰转下划线等语义操作。真要批量统一格式,得结合正则:
- 全选多行后按
Ctrl+H→ 勾选.*(启用正则) - 想把每行首个单词首字母大写:
Find What填^[^\s]+,Replace With填\u$0 - 想把所有下划线命名转 PascalCase:
Find What填(?:^|_)([a-zA-Z]),Replace With填\u$1,再点Replace All(注意:这会漏掉第一个字符前的下划线,需配合额外步骤) - 务必检查
\U$0\E中的\E是否配对,漏写会导致后续所有文本被强制大写
容易被忽略的三个硬性前提
多光标大小写转换失败,90% 情况和快捷键本身无关,而是卡在这三点:
- 输入法必须是英文状态(尤其 Windows 上搜狗、微软拼音会劫持
Ctrl+K) - 文件右下角不能显示
RO(只读),否则操作静默失败,无提示、无报错 - 当前语法高亮类型(如 HTML、Python)下,光标落在字符串或注释区域时,Sublime 默认跳过——这不是 bug,是安全策略
Case Conversion 插件或外部脚本。











