6月4日 12:49

VS Code 搜索有哪些高级技巧?正则、符号搜索和排除配置详解

VS Code 搜索分为三层:文件内搜索(Ctrl+F)、跨文件搜索(Ctrl+Shift+F)、符号搜索(Ctrl+T)。多数人只会前两个,第三个才是效率杀手。

文件内搜索:Ctrl+F 的隐藏技巧

三个按钮决定搜索行为:Aa(大小写敏感)、Ab(全字匹配)、.* (正则表达式)。最常用的组合是开着正则 + 关闭大小写——比如搜 console\.(log|warn|error) 一键找到所有 console 调用。

Alt+Enter 一键选中所有匹配项,进入多光标模式——批量修改变量名的最快方式,比重构命令还快。

跨文件搜索:排除比搜索更重要

Ctrl+Shift+F 搜整个项目,但大项目搜 node_modules 或 dist 会卡死。必须配置排除规则:

json
{ "search.exclude": { "**/node_modules": true, "**/dist": true, "**/.git": true, "**/*.min.js": true, "**/build": true } }

搜索框下方的 include 和 exclude 输入框可以临时覆盖——比如只在 src 目录搜,exclude 填 *,include 填 src/**。

替换前一定要预览Ctrl+Shift+H 打开全局替换,每个替换结果旁边有 diff 预览,逐条确认后再批量替换。直接全局替换改出 bug 是血泪教训。

正则搜索:最实用的几个模式

场景搜索正则说明
找所有 TODOTODOFIXME
找函数定义function\s+\w+匹配 function 关键字
找中文注释[一-鿿]+Unicode 中文范围
找空行^\s*$配合全字匹配找空行
替换引号风格查找 "(\w+)" 替换 '$1'捕获组替换

正则替换中 $1、$2 引用捕获组——比手动一个个改快 100 倍。

符号搜索:Ctrl+T 是效率秘密

Ctrl+T 搜索工作区里的函数、类、变量名——不搜文件内容,搜代码结构。输入 handleSubmit 直接跳到函数定义,不需要知道在哪个文件。支持模糊匹配:hse 就能匹配 handleSubmit。

Ctrl+Shift+O 搜索当前文件的符号,按类型分组(函数、类、变量)。输入 @: 前缀按类别分组显示——@:f 只看函数,@:c 只看类。

快速打开:Ctrl+P 不只是开文件

Ctrl+P 模糊搜索文件名,但输入 : 跳到指定行号(如 app.js:42),输入 @ 跳到文件内符号(如 app.js@handleSubmit),输入 # 搜索工作区符号。一行搞定打开某文件的某个函数。

追问

搜索太慢怎么办?

三个优化:(1) 检查 search.exclude 是否排除了 node_modules/dist/build;(2) 大文件搜索关掉正则模式,纯文本搜索快 10 倍;(3) 超大仓库考虑用 ripgrep(VS Code 内置,但确认 search.useRipgrep 没被关掉)。

怎么搜索 Git 某次提交引入的变更?

VS Code 内置 Git 搜索不支持这个。用命令行更快:git log -S "keyword" 找到引入某关键字的提交,git show <hash> 看具体变更。或者在 VS Code 的 Git 面板里搜索历史记录。

怎么在搜索结果中排除某个目录但不修改全局配置?

搜索面板的 exclude 输入框支持临时规则,只对当前搜索生效。比如填 /test/ 临时排除测试文件,不影响全局设置。搜索完后清空即可。

标签:VSCode