昨天我在写一个 Go 结构体,字段名要从 user_name 改成 UserName。我盯着那个下划线,左手小指按住 Shift,右手一个字母一个字母地敲,敲到第五个字母的时候,我停下来了。
我在 2026 年,用着一个用 Rust 写的、性能吊打 Electron 的编辑器,然后我在手动改大小写。
于是我打开命令面板,输入“case”,想看看 Zed 有没有内置的转换命令。结果还真有,而且不止一个。
四个命令,各管各的
Zed 内置了这几个大小写转换的 action,都能在命令面板里直接搜到:
editor::ConvertToUpperCase:全部转大写。helloWorld→HELLOWORLDeditor::ConvertToLowerCase:全部转小写。HelloWorld→helloworldeditor::ConvertToUpperCamelCase:转大驼峰。hello_world→HelloWorldeditor::ConvertToSnakeCase:转蛇形命名。HelloWorld→hello_world
你问“小驼峰”(lowerCamelCase)在哪?Zed 没有单独的命令叫这个名字,但社区里大家一般用 ConvertToSnakeCase 配合其他操作来凑,或者自己写个自定义命令链。


后来我发现zed还支持这几种明明风格

kebab case:也叫“烤肉串命名法”。就是把单词用短横线 - 连起来,全小写。比如 user-profile-card、my-awesome-component。
这在 CSS 类名、URL 路径、HTML 属性里特别常见。你写前端的时候,从 userProfileCard 转成 user-profile-card,用它一键搞定
sentence case
句子式大小写。就是只有第一个单词首字母大写,其余全小写,像写英文句子一样。比如 this is a sentence。
这个在写文档标题、注释、README 段落的时候很好用。你从别处粘一段全大写的文本,一键转成正常的句子格式。
opposite case
反转大小写。就是把当前的大小写全部反过来:大写变小写,小写变大写。
比如你选中 Hello World,按下这个命令,它就变成 hELLO wORLD。这功能听起来有点怪,但写代码时偶尔会用到——比如你想把一个常量名 MAX_RETRY_COUNT 快速转成 max_retry_count,但又不想用 snake case 命令,就可以用 opposite case 反过来。
但 Zed 没给你绑快捷键
这是最让人又爱又恨的地方。这四个命令,Zed 默认一个快捷键都没绑。
你想用?行,打开命令面板,输入命令名,回车。用一次两次还好,用多了你就想砸键盘——我改个字段名,还得先按 Cmd+Shift+P,再打字搜命令?
对比一下 VS Code,这方面就“贴心”多了。VS Code 内置了 Transform to Uppercase、Transform to Lowercase、Transform to Title Case 等命令,而且很多是默认绑了键的。更别提 VS Code 的扩展生态里,还有专门做各种命名风格转换的插件,一键从 snake_case 切到 camelCase,连命令面板都不用开。
自己绑,其实也不难
Zed 的解法是:你自己去 keymap.json 里绑。
打开 Cmd+Shift+P,搜 zed: open keymap,然后往 bindings 数组里加:
{
"context": "Editor && mode == full",
"bindings": {
"cmd-u": "editor::ConvertToUpperCase",
"cmd-l": "editor::ConvertToLowerCase",
"cmd-shift-u": "editor::ConvertToUpperCamelCase",
"cmd-shift-l": "editor::ConvertToSnakeCase"
}
}
逻辑很简单:Cmd+U/L 管纯大小写,加 Shift 管命名风格。绑完之后,改字段名就是选中、按一下、完事。
如果你是从 VS Code 或 JetBrains 迁移过来的,可以在 settings.json 里把 base_keymap 设成 "VSCode" 或 "JetBrains",Zed 会加载对应的预设键位方案,省得你从头配。
这很 Zed:它给你一套干净、快速、原生的工具,但它默认你是个愿意折腾配置的人。你不动手,它就静静躺在命令面板里;你动手了,它就变成你手上最顺手的那个快捷键。
至于那个下划线字段——我现在选中它,按 Cmd+Shift+U,它自己就变成 UserName 了。小指终于可以歇会儿了。