ctrl+k ctrl+c 无反应是因未安装 case conversion 插件;安装后需重启或执行依赖满足,右键出现“to camel case”即就绪;多光标独立处理,仅作用于连续非空白字符;正则替换推荐用\_(\w)→\u$1,驼峰转下划线应匹配小写后大写交界(\[a-z\])(\[a-z\])→$1\_$2。

Ctrl+K Ctrl+C 为什么按了没反应
因为这不是 Sublime 原生功能,而是 Case Conversion 插件注册的命令。没装插件时,按键完全静默——不报错、不提示、也不执行。很多人反复检查快捷键设置,却卡在插件缺失这一步。
必须先通过 Ctrl+Shift+P → 输入 Install Package → 搜索并安装 Case Conversion,然后重启 Sublime 或手动执行 Package Control: Satisfy Dependencies。右键选中文本后菜单里出现 To Camel Case,才算真正就绪。
- Windows/Linux 默认快捷键是
Ctrl+K Ctrl+C,macOS 是Cmd+K Cmd+C - 多光标下每个光标独立处理,但只作用于“当前光标所在位置的连续非空白字符”,点在
user.name的.上,只会转user或name单独部分 - 选区为空、全是空格或换行符时,命令同样静默失败
正则替换应急时,_(\w) 和 \u$1 到底怎么选
两者都能用,但行为不同:\U$1(全大写)更稳,\u$1(首字母大写)只对 ASCII 字母生效,遇到 _2 或 _α 会跳过,且不支持 Unicode 字母。
正确操作是:打开替换面板(Ctrl+H),启用正则(点 .*),查找 _(\w),替换为 \U,全部替换。之后手动删开头可能残留的下划线(如 _id → Id),再用 Ctrl+K Ctrl+L 小写首字母。
- 连续下划线(
user__name)需先运行一次Replace All _清理冗余 -
user_id_2_field→userId2Field,数字衔接逻辑自然成立;但user_2_id→user2Id,符合常规,无需额外干预 - 禁用
Match Whole Word,否则user_name中的_name可能不被匹配
驼峰转下划线为什么不能搜 [A-Z] 加下划线
那样会把每个大写字母前都插一个下划线,iPhone 变成 _i_phone,parseJSON 变成 parse_j_s_o_n——根本不是边界识别,而是暴力拆解。
真正要捕获的是「小写字母后紧跟大写字母」这个拐点,即大小写交界处。正则应写为 ([a-z])([A-Z]),替换为 $1_$2,再统一小写(Ctrl+K Ctrl+L)。
- 开头 PascalCase(如
UserName)需额外前置处理:^([A-Z])([a-z])→\L$1\E$2 - 连续大写缩写(
XMLParser)会被误拆,得加规则:([A-Z]+)([A-Z][a-z])→$1_$2 - 含数字时(
userId2Name),建议改用([a-z0-9])([A-Z])避免把2N拆开
变量重命名时,光改名字远远不够
Sublime 不做符号级引用更新。你把 myFunction 改成 my_function,调用处的 myFunction() 不会自动同步——它只是文本替换。
真正在业务代码里批量改变量名,必须配合 Alt+F3(Find All)确认上下文,或用专业 IDE 的重命名功能。Sublime 的 Case Conversion 再快,也只是第一步。
- 字符串字面量里的
"user_name"也会被正则误伤,替换前务必限定选区范围 - 中文混排(如
用户名_id)插件只处理英文部分,前面中文不动,但你也得手动核对语义是否断裂 - 带特殊符号的字段(
api-key、http_status_code_v2)往往需要组合操作:先清理符号,再分词,再逐段处理,最后微调数字位置











