sublime如何快速将选中内容转换为小驼峰命名?(变量命名提速)

11次阅读

sublime Text 默认不支持小驼峰转换,需安装Case Conversion插件;选中snake_case或kebab-case文本后按Ctrl+K Ctrl+C(win/linux)或Cmd+K Cmd+C(macos)即可转换,首单词恒小写,但连续下划线、全大写缩写及中文需手动处理。

sublime如何快速将选中内容转换为小驼峰命名?(变量命名提速)

sublime text 里没有内置的小驼峰转换功能

默认安装的 Sublime Text 不提供 snake_casecamelCasekebab-casecamelCase 的一键转换。你选中文字按快捷键,不会自动变形——这是很多人第一次找半天没找到的原因。

必须装插件:SideBarEnhancements 不行,要用 Text Pastry 或 EasyMotion + 自定义命令?不,最稳的是 Case Conversion

推荐直接安装社区维护成熟、零配置的插件:Case Conversion(作者:jdc0589)。它支持全平台,响应快,且不依赖 python 构建环境。

  • 打开 Command Palette(Ctrl+Shift+P / Cmd+Shift+P),输入 Package Control: Install Package 回车
  • Case Conversion,回车安装
  • 重启 Sublime(部分版本需重启才加载新命令)
  • 选中如 user_name_inputfirst-name-field,再按 Ctrl+K Ctrl+Cwindows/Linux)或 Cmd+K Cmd+CmacOS)即可转为 userNameInputfirstNameField

注意分隔符识别逻辑和常见翻车点

Case Conversion 默认按 _- (空格)、. 切分单词,首字母大写后拼接,但**第一个单词永远小写**——这符合小驼峰定义。但容易忽略的细节有:

  • 连续下划线(如 user__name)会被当做一个空字段处理,结果变成 userName(不是 bug,是按 Token 切分的正常行为)
  • 含数字时(如 user_id2_field)→ userId2Field,数字后字母仍大写,符合主流语言惯例
  • 全大写缩写(如 xml_HTTP_REQUEST)→ xmlHttpRequest,不会保留 XML,如需 xmlHttprequest 得手动调;若要保持 XmlHttpRequest,得用其他插件或正则替换
  • 中文或特殊符号(如 用户_name)会卡在中文处截断,只转换后面部分,建议先清理非 ASCII 字符

不想装插件?临时用正则替换也行,但得记两组 pattern

适用于一次性处理、或受限环境(如公司锁死插件安装)。打开 Find → Replace(Ctrl+H),勾选 Regular Expression

s/[_-. ]+(w)/U$1/g

这只能把分隔符后的首字母变大写,还剩第一个单词要手动小写。更完整的方案分两步:

  • 第一步:去掉所有分隔符并首字母大写 → find: [_-. ](w)replace: U$1
  • 第二步:把开头字母变小写 → find: ^(w)replace: L$1

但要注意:正则无法智能跳过已有大小写(比如 UserIDuserid 再 → userId),纯靠人工校验。插件仍是变量命名提速的合理选择。

真正卡住效率的往往不是「有没有功能」,而是「第一个单词是否被误大写」和「缩写词怎么保真」——这两点 Case Conversion 默认不处理,得自己扫一眼。

text=ZqhQzanResources