ctrl+k ctrl+c 不能将 user_name 转为 username,因其仅按空格执行 title_case,无视下划线;正确转换需分步正则:先 \_(\w)→\u$1,再手动修正首字母并小写化。

为什么 Ctrl+K Ctrl+C 不能把 user_name 变成 userName
因为 Ctrl+K Ctrl+C 是 title_case 命令,它只按空格切分单词,对下划线、短横线、数字完全无感。输入 user_name,它会原样输出 User_name;输入 api-key,结果是 Api-key——根本没动分隔符,更不会合并单词。真正起作用的是正则引擎的大小写转义序列,不是快捷键本身。
snake_case → camelCase 的两步正则必须顺序执行
单靠一次替换无法兼顾所有边界:下划线要删、后续字母要大写、首字母还得保持小写。必须分步:
- 启用正则模式(点击
.*),查找:_(\w),替换为:\u$1(\u只影响下一个字符,安全) - 全部替换后,手动检查开头是否残留下划线(如
_id→Id),用退格删掉,再选中整个结果按Ctrl+K Ctrl+L统一小写,最后把首字母手动小写(如Id→id) - 若原始含连续下划线(
user__name),先全局替换__为_,再跑上面两步
camelCase → snake_case 别匹配 [A-Z],要捕获交界点
直接搜 [A-Z] 并替换成 _$0,会导致 iPhone 变成 _i_Phone、parseJSON 变成 parse_J_S_O_N。正确做法是定位「小写→大写」或「大写→大写+小写」这两个拐点:
- 查找:
([a-z])([A-Z])|([A-Z])([A-Z][a-z]),替换为:$1$3_$2$4 - 勾选
Aa(区分大小写),先点Find All预览匹配是否合理 - 替换完统一按
Ctrl+K Ctrl+L转小写,得到标准snake_case
带数字和缩写的命名(如 user_id_2、XMLHttpRequest)正则很难全覆盖
原生正则不理解词法结构,user_id_2 用 _(\w) 能转成 userId2(符合惯例),但 XMLHttpRequest 会被拆成 X_M_L_H_t_t_p_Request 或漏处理——取决于你写的正则是否覆盖全大写块。这时候别硬调正则,直接装 Case Conversion 插件更省事。它内部做了词干识别,能把 XMLHttpRequest 正确转成 xmlHttpRequest,而不用你写带负向断言的复杂表达式。











