sublime默认忽略大小写,启用区分大小写需手动点击查找面板右下角的aa图标(windows/linux按alt+c,mac按cmd+alt+c),正则模式下该图标失效,须改用(?i)修饰符。

开启区分大小写后,为什么“TODO”还是匹配了“todo”?
因为没点开查找面板里的 Aa 图标——它才是真正的开关,不是默认开启的。Sublime 默认是忽略大小写的,哪怕你搜的是全大写单词,只要不手动启用该选项,todo、Todo、TODO 全都会被高亮。
- 快捷键:打开查找面板(
Ctrl + F)后,直接按Alt + C可切换区分大小写状态(Windows/Linux);Mac 是Cmd + Alt + C - 图标位置:在查找面板右下角,一个带
Aa的按钮,点击后变蓝即生效 - 注意:它只影响当前查找会话,关闭面板再打开就得重新点
全局搜索时,Aa 和 \b 能不能一起用?
当然能,而且强烈建议一起用——尤其在重构变量名或检查硬编码时。比如搜 userId,不加 Aa 会把 userid、USERID 全扫出来;不加 \b 又可能误中 userIds 或 myUserId。
- 操作路径:
Ctrl + Shift + F打开全局搜索 → 输入userId→ 同时点开Aa和\b图标 - 效果等价于正则:
\buserId\b,但不用手敲,更稳 - 陷阱:如果项目里混用了大小写风格(比如部分文件用
userid,部分用userId),单靠这个组合可能漏查,得先统一风格再搜
正则模式下,Aa 还起作用吗?
不起作用——一旦你点了 .* 开启正则,大小写敏感性就由正则引擎本身控制,Aa 按钮自动失效。这时候想忽略大小写,得显式加修饰符 (?i)。
- 正确写法:
(?i)todo匹配所有大小写变体;todo(不加修饰符)只匹配小写 - 常见错误:开着
.*还去点Aa,界面会响应,但实际不生效,容易误判结果 - 调试建议:不确定是否生效?临时关掉
.*,用纯文本 +Aa对比一次结果数量
为什么在某些文件里,Aa 像“失灵”了一样?
大概率是文件编码或 BOM 导致的隐式字符差异。比如 UTF-8 with BOM 的文件,开头三个字节可能让 Sublime 的匹配边界偏移,导致大小写判断错位;或者文件里混入了不可见的全角空格、零宽字符,表面看是 TODO,实际是 TODO + 零宽连接符。
- 验证方法:选中疑似匹配项,按
Ctrl + Shift + P→ 输入 “Show Character Code”,看 Unicode 码点是否异常 - 临时解法:复制那个“看似相同”的词,粘贴到查找框里再搜,比手动输入更可靠
- 根治建议:用
File → Reopen with Encoding → UTF-8统一重载,或插件ConvertToUTF8批量清理
Aa 就下岗了——这点不记住,查半天都查不到真正的问题。










