sublime text大小写转换需先按ctrl+k松手再按u/l,因ctrl+k仅为命令前缀而非组合键;连按会触发删行等冲突命令或被输入法拦截,且只读状态、中文输入法均导致失效。

Ctrl+K 不是快捷键,是命令前缀,必须松手再按后续键才能触发大小写转换。
为什么 Ctrl+K+U 没反应?
这不是三键组合,而是两段式操作:先按 Ctrl+K → 松手 → 再按 U(大写)或 L(小写)。连按不松手时,系统收到的是 Ctrl+K 后立刻接 U,但 Sublime 会把它识别为其他命令(比如 Ctrl+K, Ctrl+K 删到行尾),或被输入法/插件拦截。
- Windows/Linux 正确流程:
Ctrl+K→ 松开 →U(转大写)或L(转小写) - macOS 用户同理,把
Ctrl全部换成Cmd - 文件右下角显示
RO(只读)时,操作静默失败,需先取消只读或另存为 - 输入法处于中文状态时,
U/L键常被系统吞掉,切英文输入法再试
upper_case 和 lower_case 命令的作用范围怎么控制?
作用对象完全由当前选区决定,没有“智能上下文”:
- 没选中任何文本 → 只处理光标所在单词(不是整行,也不识别
camelCase) - 选中一段含空格/标点的文本(如
"Hello World!")→ 整体转换为"HELLO WORLD!"或"hello world!" - 多行选中 → 每行独立处理,不会跨行合并逻辑
- 多光标(
Ctrl+D逐个选或Ctrl+鼠标左键点出)→ 每个光标位置独立转换其所在单词或选区
整行、全文件或首字母大写,为什么不能只靠快捷键?
内置 Ctrl+K, U/L 只响应“已有选区”,无法自动识别行边界、词边界或语义规则。真正批量处理得进正则替换面板:
- 打开
Ctrl+H(Cmd+H),勾选Regular Expression(点.*按钮) -
\U$0\E:整个匹配项转大写($0是完整匹配,\E必须配对,漏写会导致后续所有文本变大写) -
\L$0\E:全部转小写 -
\u$0:仅首字符大写(注意是\u,不是\U;它只影响紧邻下一个字符) - 想每行首字母大写?
Find What填^[^\n],Replace With填\u$0,再点Replace All
自定义快捷键时最容易踩的坑
想用 Ctrl+Shift+U 直接触发大写?可以,但必须写进用户配置,且命令名不能错:
- 打开
Preferences → Key Bindings,只编辑右侧「User」面板(左侧 Default 是只读的,升级会被覆盖) - 命令名必须是
upper_case、lower_case、swap_case、title_case四者之一,拼错就报command not found - 示例绑定(小写):
[{"keys": ["ctrl+shift+l"], "command": "lower_case"}] - 装了
Case Conversion等插件后,原生命令仍存在,但部分插件会劫持Ctrl+K前缀,导致默认快捷键失效——此时要么禁用插件,要么在用户配置里显式重绑定
\U 后面必须跟 \E,或者以为 title_case 能处理 user_name 或 APIv2。这些地方一漏,改完还得手动翻查。











