ctrl+shift+f(windows/linux)或cmd+shift+f(macos)是vscode唯一全局搜索快捷键;ctrl+f仅限当前文件,焦点需在编辑器内,中文输入法下应切英文;替换需手动展开replace区域,路径筛选不支持嵌套通配符,正则替换中$$&表示字面量$。

Ctrl+Shift+F 是唯一有效的全局搜索快捷键
VSCode 没有“多个等效快捷键”支持全局搜索,Ctrl+Shift+F(Windows/Linux)或 Cmd+Shift+F(macOS)是官方唯一绑定的全局文本搜索入口。很多人误以为 Ctrl+F 能扫整个项目,其实它只作用于当前打开的文件;按了没反应,八成是焦点卡在终端或调试控制台里——先按 Ctrl+` 切出来,再试。
- 右下角状态栏显示
TERMINAL或DEBUG CONSOLE时,快捷键必然失效 - 中文输入法激活状态下,部分键盘布局会吞掉组合键,切英文再试最稳
- 插件冲突虽少见,但可通过命令面板运行
Preferences: Open Keyboard Shortcuts (JSON)检查是否有自定义覆盖
全局替换必须手动展开替换区域,不能直接回车
输完关键词按回车,只会执行搜索,不会进入替换流程。替换功能默认隐藏,需主动展开:点击搜索面板下方的 Replace 标签,或按快捷键 Alt+R(Windows/Linux)/Option+R(macOS)。不展开就点“全部替换”,界面上根本不会出现替换按钮。
- 逐个替换更安全:每个匹配项右侧都有独立的
Replace按钮,适合跨文件谨慎修改 - “全部替换”会跳过只读文件、未保存的临时文件,也会跳过被排除在工作区外的路径
- 替换前务必确认文件筛选条件(如
src/**,*.ts),否则可能误改 node_modules 或配置文件
文件筛选框不支持通配符嵌套,但支持逗号分隔多条件
src/** 可以匹配 src 下所有子目录,但 src/**/utils/** 这类嵌套写法不被识别;真正生效的是扁平化路径模式 + 逗号分隔。例如想只搜 Vue 组件里的 MyDialog,应该这样填:
MyDialog ext:.vue
或者更精准地结合语法特征:
MyDialog *.vue,*.ts
-
ext:.vue是推荐写法,比*.vue更明确,且兼容 VSCode 1.85+ 的筛选逻辑 - 多个扩展名用逗号隔开,空格会被忽略,
*.js, *.ts和*.js,*.ts效果一致 - 路径过滤如
src/components/**必须写在“文件筛选”框里,不能塞进主搜索框
正则替换中 $& 和 $$& 容易混淆,影响符号插入结果
启用 .* 按钮后,替换字段里写 $& 表示原样插入匹配内容,写 $$& 才能输出字面量 $ 加原文——这是最容易翻车的地方。比如想给所有数字加前缀 $,搜索 \d+,替换必须写 $$&,写成 $& 会导致报错或空替换。
-
\s+$匹配行尾空白,替换留空可批量清理空格,但注意它不处理制表符,要加\t才完整 - 跨行替换需显式用
\n,VSCode 不支持.默认匹配换行,得勾选.*后写[\s\S]*才行 - 全词匹配(
‸按钮)对中文无效,它只认 ASCII 单词边界,搜中文建议加引号或用正则\b手动限定











