sublime text 的 swap_case 命令仅对选中文本生效,且只处理 ascii 字母、不支持 unicode 及大文件批量操作,需手动选中、查键绑定或改用正则替换。

Sublime Text 里 swap_case 不起作用?先确认是否选中了文本
没反应不是功能坏了,而是 swap_case 默认只对当前选中文本生效——光标单独停在单词上,它不会自动识别并转换。这是最常被忽略的前提。
实操建议:
- 用鼠标或
Ctrl+D(Windows/Linux) /Cmd+D(macOS)选中要转换的单词、行或块 - 确保没有处于命令面板输入状态(比如刚按了
Ctrl+Shift+P但还没输完),否则快捷键会被拦截 - 多行编辑时,每行光标所在位置都需有选区,否则只转换第一处
Windows/macOS/Linux 下默认快捷键不一致,别硬记
Sublime Text 官方默认把 swap_case 绑定在 Ctrl+K, Ctrl+U(Windows/Linux)和 Ctrl+K, Ctrl+U(macOS)上——但 macOS 用户实际更常用 Cmd+K, Cmd+U,因为系统级 Ctrl 键行为不同。很多教程写错,导致 macOS 用户按了没反应。
实操建议:
- 查当前绑定:打开
Preferences → Key Bindings,搜索swap_case看右侧文件里是否真有这条规则 - 如果被插件覆盖(比如 Vintage 模式或 Emmet),直接在用户键绑定里加一行:
[{"keys": ["ctrl+k", "ctrl+u"], "command": "swap_case"}] - 不想记组合键?右键选中文本,从上下文菜单选
Swap Case最稳
批量处理大文件时,swap_case 会卡顿甚至假死
它本质是逐字符遍历+判断大小写,没做性能优化。10MB 以上的日志或代码文件,全选后按快捷键,可能卡住 3–5 秒,且无法中断。
实操建议:
- 避免全选整文件;改用正则替换替代:
Find: ([a-z])([A-Z])→Replace: \U$1\E$2(需开启regex和case sensitive) - 如果只是想统一转小写或大写,用
transform_to_lowercase或transform_to_uppercase命令更快,它们底层调用更轻量的字符串方法 - 插件如
Text Pastry或MultiEditUtils提供异步批量操作,适合重复模式转换
中文、数字、符号混排时,swap_case 的行为很“老实”
它只认 ASCII 字母:a–z 和 A–Z。遇到中文、emoji、全角数字或带重音的拉丁字母(如 é),一律跳过——不会报错,也不会提示,看起来像“没动”。这点容易误判为 bug。
实操建议:
- 确认待转换内容是否真含英文字母;用正则
[a-zA-Z]高亮一下就知道 - 需要处理 Unicode 大小写(如德语
ß→SS),得用 Python 插件调用str.upper()或str.swapcase(),原生命令做不到 - 注意字体渲染:某些等宽字体里
I和l看起来一样,转换后你以为没变,其实是变了










