sublime多行选中后大小写转换需执行ctrl+k→松手→ctrl+u/l,每行独立处理,空格、下划线等非字母字符保持不变;csv列转换出错常因选区不精确,应使用列选择模式(alt+拖拽)避免混入换行符或空格。

Sublime 多行选中后大小写转换怎么操作?
直接选中多行文本(鼠标拖拽、Ctrl+Shift+↓ 或 Ctrl+L 选整行),然后执行两段式命令:Ctrl+K → 松手 → Ctrl+U(大写)或 Ctrl+L(小写)。
每行独立处理,不会跨行合并逻辑。比如选中:
hello world user_name API_KEY
执行 Ctrl+K → Ctrl+U 后变成:
HELLO WORLD USER_NAME API_KEY
注意:空格、下划线、连字符都保留原样,只改变字母大小写;标点和数字完全不动。
为什么整列 CSV 字段转小写会出错?
常见问题不是快捷键失效,而是选区没对齐——CSV 编辑时若用鼠标拖拽选中“列”,实际可能混入换行符或多余空格,导致部分行没被覆盖。
更稳的做法是:
- 先用
Ctrl+Shift+P调出命令面板,输入Column Select Mode启用列选择(或按住Alt+ 鼠标拖拽) - 精确框选字段列(避开引号、逗号、换行)
- 再执行
Ctrl+K→Ctrl+L
如果字段里含字符串字面量(如 "iPhone"),它也会被转成 "IPHONE",这不是 bug,是 Sublime 的字符映射机制决定的——它不区分上下文。
想让每行首字母大写,但 Ctrl+K, Ctrl+C 不管用?
title_case 命令(对应 Ctrl+K, Ctrl+C)只做最基础的空格分词,对 iPhone、XMLHttpRequest、user_id 这类完全无效。
它真正能处理的只有类似 hello world → Hello World 这种纯空格分隔的场景。
要批量实现「每行首字母大写」,必须进正则替换:
-
Ctrl+H打开替换面板 - 勾选
.*(启用正则) -
Find What填^[^\n] -
Replace With填\u$0 - 点
Replace All
⚠️ 切记:\u 只影响紧邻的下一个字符,不是整行;别写成 \U$0,否则整行变大写。
自定义快捷键绑定后没反应,哪里错了?
最常踩的坑是改了左侧「Default」配置区——那只是只读模板,升级 Sublime 就会被覆盖。
必须只编辑右侧「User」面板(Preferences → Key Bindings,右边那个空白窗口)。
正确写法示例(小写):
[{"keys": ["ctrl+shift+l"], "command": "lower_case"}]
关键点:
-
command名必须是upper_case、lower_case、swap_case、title_case四者之一,拼错就报command not found - 插件(如 Case Conversion)可能劫持
Ctrl+K前缀,此时原生命令失效,要么禁用插件,要么在 User 配置里显式重绑定
复杂点在于:Sublime 的大小写转换从不识别语义。它不管你是变量、字符串还是注释,只要在选区内,就无差别映射。需要智能规则(比如驼峰转蛇形),就得靠插件,原生做不到。











