ctrl+shift+f(windows/linux)或cmd+shift+f(macos)是vscode全局搜索唯一入口;ctrl+f仅限当前文件,需确认左上角显示“在工作区中搜索”;正则模式(.*)默认关闭,搜中文须开启并输入unicode范围如[u4e00-u9fa5]。

Ctrl+Shift+F 是唯一入口,不是 Ctrl+F
全局搜索特定字符,必须用 Ctrl+Shift+F(Windows/Linux)或 Cmd+Shift+F(macOS)。Ctrl+F 只搜当前文件,哪怕你已经打开了整个项目,它也不会跨文件——这是最常被卡住的第一步。
打开后,左上角显示“在工作区中搜索”才算进对地方;如果显示“在当前文件中查找”,说明快捷键按错了,或者面板没真正激活。
- 右上角三个图标:
aa(区分大小写)、ab(整词匹配)、.*(正则)默认都关闭。日常搜普通字符(比如useState、export default),保持全关最安全 - 输完字符直接回车,结果为空?先检查是否误开了
.*:一旦开启,[、(、?这些符号会触发正则语法报错,VSCode 不提示,只静默返回零结果 - 搜 JSX 中的
<div> 时,直接输 <code><div> 即可;但若结果少,试试加英文引号:<code>"<div>",避免被 HTML 注释或字符串内容干扰 <h3>搜带元字符的字符串,关正则 or 转义</h3> <p>像 <code>const [、foo.bar、class="btn"这类含正则元字符([、.、"、*等)的文本,不能直接开正则搜——除非你真想做模式匹配。两种做法选其一:
- 推荐:关掉
.*图标,当纯字符串搜。这时const [就是字面意思,不会报错也不会漏匹配 - 必须开正则时,得手动转义:搜
foo.bar、const [、class="([^"]+)"。注意点号、方括号、双引号都要加反斜杠 - 搜字面意义的反斜杠
?正则模式下输入\;纯字符串模式下直接输即可
替换时换行、制表符、捕获组怎么写
全局替换(
Ctrl+Shift+H)和局部替换(Ctrl+H)共用同一套规则,但替换框里的转义逻辑和搜索框不同。- 换行不能按
Enter,得按Shift+Enter—— 否则会直接执行替换操作 - 替换内容里要插换行符,写
;插制表符写;插字面反斜杠写\;插美元符写$ - 捕获组只能用
$1、$2,无效。例如搜console.log("([^"]*)"),替换填console.error("$1"),括号内内容就原样保留 - 如果
$1后紧跟数字(如$12),VSCode 会尝试找第 12 组,但通常不存在 → 改用${1}2显式分隔
中文字符搜索必须开正则,用 Unicode 范围
搜代码里的中文(比如注释、文案、错误提示),不能靠关/开正则切换,必须开
.*,然后输 Unicode 正则。- 基本中文(简繁常用字):
[u4e00-u9fa5] - 中文标点(,。!?“”):
[u3000-u303fuff00-uffef] - 最常用组合(文字 + 标点):
[u4e00-u9fa5u3000-u303fuff00-uffef] - 搜完记得关掉
.*,否则下次搜普通变量名可能又失效 —— VSCode 不记状态,每次都是独立开关
正则模式下,这些表达式能精准命中所有中文字符,包括空格、全角符号等不可见但实际存在的内容。最容易忽略的是:不关正则,就永远搜不到中文;开了正则,却忘了输对 Unicode 范围,结果只匹配到零星几个字。
- 推荐:关掉











