ctrl+d默认严格区分大小写且仅匹配完整单词。光标须落在字母内部,否则无法触发;双击选中user_name后,ctrl+d只匹配相同大小写的user_name,跳过user_name、user_id等;误操作常因光标位置、大小写开关或word_separators配置错误导致。

Ctrl+D 默认区分大小写,不选中就匹配不了
Sublime 的 Ctrl+D 是按“完整单词 + 严格大小写”匹配的,它不会忽略大小写差异,也不会跨空格或标点延伸。比如你双击选中 user_name,再按 Ctrl+D,它只会继续选中其他完全相同的 user_name,而跳过 USER_NAME、user_id 或 user_name,(逗号算边界)。
常见误操作包括:
- 光标停在单词中间双击,结果带上了前后空格或标点,后续 Ctrl+D 就再也找不到纯单词匹配
- 想匹配大小写混合词(如 ApiEndpoint),但没提前统一格式,Ctrl+D 直接无视
- 用 Ctrl+F 查找时没关 Aa(大小写敏感)按钮,导致搜索结果和 Ctrl+D 行为不一致
多光标 + 大小写转换必须分步执行,不能靠快捷键自动对齐
当你用 Ctrl+D 或 Ctrl+Click 打出多个光标后,每个光标都独立触发 upper_case 或 lower_case 命令——但它们只作用于各自所在位置的“语义单词”,不会强制所有光标对齐到同一列,也不会把不同行的词合并处理。
例如你点出三个光标分别落在:user_name、api_key、db_config 上,执行 Ctrl+K → 松手 → Ctrl+U,结果是三者各自转大写:USER_NAME、API_KEY、DB_CONFIG。但如果你点偏了,某个光标落在下划线或空格上,那地方就不会触发任何转换。
关键控制点:
- 每个光标必须落在字母上(哪怕只覆盖首字符)才有效
- drag_text 配置为 true 时,Ctrl+Click 会拖动文本而非加光标,需手动设为 false
- 软换行(Word Wrap)开启时,视觉位置和逻辑位置错位,容易点偏,临时关闭更准
整行/跨行精准改大小写,得靠正则替换配 ^ 和 \b
原生快捷键无法识别“每行第一个单词”或“变量名中的驼峰段”,这时候必须进 Ctrl+H 替换面板,开正则(点 .* 按钮),用锚点和边界符锁定目标。
比如要让每行首个英文单词首字母大写,且跳过空行和缩进行:
- Find What: ^[^\n\S]*([a-zA-Z]\w*)
- Replace With: \u$1\E
注意:^ 锚定行首,[^\n\S]* 吃掉行首空白但不吞换行,([a-zA-Z]\w*) 确保捕获的是真正单词(非数字开头、非下划线开头)。
容易翻车的地方:
- 忘记勾选 Regular Expression,\u 和 \E 完全无效
- 用 \U$0\E 替换整行时,若 Find What 写成 ^[^\n]+,会把行尾换行符也卷进去,导致格式错乱
- 文件含 BOM(如 UTF-8 with signature),^ 可能失准,先用 File → Reopen with Encoding → UTF-8 清理
Case Conversion 插件不是万能解,它不解析语法上下文
像 Case Conversion 这类插件能做 snake_case → camelCase,但它只是基于分隔符(_、-、 )切词,不是语法感知型工具。它不会判断 apiV2 中的 V2 是版本号该保留,也不会识别 Python 字符串里 "user_name" 是字面量不该动。
所以:
- 在代码文件中批量改变量名前,先确认光标没落在引号或注释内(Sublime 默认跳过这些区域)
- 插件的 To Title Case 对 don't、iPhone 有基础支持,但对 XMLHttpRequest 仍无感
- 如果你用 Vintage 或 Emacs Pro Essentials,它们可能劫持 Ctrl+K 前缀,导致插件快捷键冲突,得去 Preferences → Package Settings 查绑定
真正卡住多数人的,从来不是命令本身,而是光标是否落在合法单词上、输入法是否为英文、文件是否只读——这三点不对,后面所有操作都是静默失败。











