sublime text 中需安装 case conversion 插件实现 snake_case 转换:选中内容后通过命令面板执行 convert: camelcase to snake_case 或 convert: to upper_snake_case,支持数字、缩写识别及多行批量处理,但对中文或空格混排字符串需预先清理。

Sublime Text 里怎么把选中的字段名转成 snake_case?
直接用 Ctrl+Shift+P(Windows/Linux)或 Cmd+Shift+P(macOS)呼出命令面板,输入 Convert to Lower Case 或 Convert to Upper Case 只能做全小写/全大写,对数据库字段命名没用——你需要的是下划线分隔、首字母小写的 snake_case。
Sublime 原生不支持智能驼峰转蛇形,得靠插件。推荐安装 Case Conversion(作者:jdc0589),它提供 CamelCase to snake_case、snake_case to camelCase 等 12 种转换,且支持多行批量处理。
- 安装后,选中内容 →
Ctrl+Shift+P→ 输入Convert: camelCase to snake_case即可 - 若字段含数字或缩写(如
userID、XMLParser),默认转换可能变成user_i_d或x_m_l_parser;这时要手动触发Convert: smart camelCase to snake_case,它会识别常见缩写 - 注意:该插件对中文或空格混排的字符串不处理,会跳过——先清理非 ASCII 字符再转换
常量命名(UPPER_SNAKE_CASE)怎么一键生成?
数据库字段常用 snake_case,但代码里的常量(比如 PHP 的 const STATUS_ACTIVE = 1;)必须全大写下划线。Sublime 自带的 Convert to Upper Case 仅改大小写,不加下划线。
Case Conversion 插件同样覆盖这个场景:Convert: to UPPER_SNAKE_CASE 会自动将 userStatus → USER_STATUS,apiUrl → API_URL。
- 如果原始文本含连字符(
-)或空格,它会统一转为下划线,比如user-status→USER_STATUS - 对已有下划线的字符串(如
user_name),执行该命令只转大小写,不重复添加下划线 - 别误用
Convert to Upper Case后再手动加下划线——容易漏改、错位,尤其多字段时
为什么不能依赖正则替换做大小写转换?
有人用 Find → Replace 配正则(比如 ([a-z])([A-Z]) 替换为 $1_$2)强行转蛇形,短期看似快,但埋坑:
- 匹配不到边界情况:开头大写字母(
UserID)、连续大写(XMLHttp)、数字后大写(item2Id)都会出错 - 替换后需手动删空格、去多余下划线(
user__name),反而更耗时 - 无法逆向操作:转完
snake_case想回camelCase,正则很难可靠还原 - 不同语言规则不同(Java 常量是
UPPER_SNAKE_CASE,Go 是ExportedName),硬编码正则没法切换
数据库字段命名规范落地时最易忽略的一点
工具只是辅助,真正卡住人的不是转换动作,而是「什么时候该转、转成什么」。比如 MySQL 表字段习惯用 snake_case,但 PostgreSQL 对大小写敏感,默认把未加引号的字段名转为小写——你写了 UserName,实际存成 username,后续 SQL 里再写 SELECT UserName 就报错。
所以,与其纠结 Sublime 能不能一键转,不如在建表前明确团队约定:
- 所有字段名强制小写 + 下划线(
created_at,而非createdAt) - 避免保留字(
order、group),哪怕加了反引号也容易漏 - 常量名在代码里用
UPPER_SNAKE_CASE,但数据库里不存常量——它是逻辑层概念
工具再快,也救不了没对齐的规范意识。转大小写只是最后一道手,前面漏了,后面全得返工。











