VSCode 搜索默认不区分大小写且无法全局关闭;search.caseSensitive 仅影响命令面板命令,不影响快捷键搜索;需手动点击搜索框右侧 Aa 图标启用区分大小写,配合 \ 图标实现全词匹配。

VSCode 无法全局设置搜索忽略大小写——它默认就是忽略的,而且这个“默认”无法关闭。
为什么 search.caseSensitive 配置不生效
你在 settings.json 里加了 "search.caseSensitive": false 或 true,但它对 Ctrl+F、Ctrl+Shift+F、Ctrl+H 这些快捷键唤起的搜索完全没影响。这个配置只控制命令面板里运行的 workbench.action.findInFiles 等命令。你日常点快捷键,VSCode 就是硬编码为“默认不区分大小写”,每次打开都重置,没有例外。
真正要改的不是配置,而是每次搜索时的操作习惯
- 所有快捷键搜索(
Ctrl+F当前文件、Ctrl+Shift+F全局、Ctrl+H替换)默认都不区分大小写——搜User会命中user、USER、username - 想让它区分?必须手动点搜索框右上角的
Aa图标(或按Alt+C/Cmd+C),点一下变高亮即启用,关掉面板就失效 - 别去编辑器右上角找
Aa——那个位置是无效的;只认搜索面板里「在文件中查找」输入框右侧那个 - 中文输入法激活时按
Ctrl+F可能无响应,先切英文再试
只开 Aa 还不够:必须搭配 \b 全词匹配
开了 Aa 后,User 不会匹配 user,但依然会匹配 SuperUser 或 UserContext——因为默认是子串匹配。要真正锁定变量名,得同时点 \ 图标(Whole Word)。它比手写 \bUser\b 更可靠,能识别驼峰(如 apiConfig 中的 api 不会被单独匹配),但注意:User_id 中的 User 仍会被匹配(下划线是单词字符),而 user-name 中的 user 不会(连字符不是单词字符)。
search.smartCase 是个有限替代方案
设 "search.smartCase": true 后,搜含大写字母的词(如 User)会自动开 Aa,搜全小写(如 user)则保持不区分。但它不控制 \b,对驼峰开头的 userName 无效(因首字母小写),且文件名过滤始终区分大小写,它不管。
最稳的做法,是每次打开搜索框第一反应:瞄一眼 Aa 是否灰着,需要时点一下;再确认 \ 有没有亮;最后检查是否误开了正则(.*)——开了它,Aa 和 \ 都失效,得靠正则自己写 \bUser\b,但 JS 正则对中文变量名或 emoji(如 ✅done)基本不支持 \b。


















