Sublime Text 中搜不到 CSS 类名需区分“定义处”与“使用处”:定义处用 Goto Symbol(Ctrl+R)在 .css/.scss 文件中搜 btn-primary;使用处用 Find in Files 正则 class\s=\s["'].?\bcard\b.?["'] 限定 HTML 文件。

Sublime Text 里搜不到 CSS 类名?先确认是否在正确作用域
Sublime Text 默认的 Find(Ctrl+F / Cmd+F)是纯文本搜索,不会识别语法结构。你输 .header,它会把所有含 .header 字符串的地方都列出来——包括注释、JS 字符串、HTML 属性值,甚至文件名。真正“按类名搜索”,得靠作用域(scope)过滤。
- 确保当前文件已正确识别为
source.css或source.scss(看右下角状态栏) - 如果是 HTML 文件,CSS 类名散落在
class="..."里,得用正则 + 属性上下文,不能直接当 CSS 作用域处理 - 按
Ctrl+Shift+P(Win)或Cmd+Shift+P(Mac),输入Set Syntax: CSS强制切换语法,再试搜索
用 Goto Symbol 快速跳转到 CSS 类定义(仅限 .css/.scss 文件)
Goto Symbol(Ctrl+R / Cmd+R)本质是解析当前语言的符号表,对 CSS 来说,它只识别 .class-name、#id、@keyframes name 这类顶层声明,不抓属性块里的内容。
- 必须在
.css或.scss文件中才有效;HTML 文件里按 Ctrl+R 是搜 HTML 标签名或 ID,不是 CSS 类 - 输入时不用加点,搜
btn-primary就行,不是.btn-primary - 如果类名带连字符(如
.text-lg),它能识别;但带空格或括号(如.a b、.cls:hover)不会出现在符号列表里
正则搜索精准匹配 class 名(支持 HTML + CSS 混合场景)
要跨文件、跨语法类型找真实使用的类名(比如查 .card 在哪些 HTML 里被写进了 class 属性),必须上正则:
- 打开
Find in Files(Ctrl+Shift+F / Cmd+Shift+F) - 勾选
Regular Expression,关闭Match Case(除非严格区分大小写) - 搜索框填:
class\s<em>=\s</em>["'].<em>?\bcard\b.</em>?["']-
\bcard\b防止匹配到cardinal或recard -
["'].*?["']容忍单/双引号和中间任意字符(含空格、其他类)
-
- 路径填
*<em>/</em>.html或*<em>/</em>.htm,避免扫进 JS 或 CSS 文件干扰结果
插件方案:CSS Peek 不适合 Sublime,别白装
网上常推的 CSS Peek 是 VS Code 插件,Sublime 没有同名原生实现。有人尝试用 SublimeLinter-csslint 或 Emmet 辅助,但它们都不提供“点击类名跳转定义”功能。
立即学习“前端免费学习笔记(深入)”;
-
Emmet只负责缩写展开,对已有类名无感知 -
CSScomb是格式化工具,和搜索无关 - 真正接近需求的是
Scope Hunter插件:按Ctrl+Shift+Alt+P显示光标处的作用域,确认你当前停在entity.name.tag.class.css上,才说明 Sublime 认出了这是个类选择器 —— 这是后续所有高级搜索的前提
CSS 类搜索的复杂点不在操作步骤,而在你始终得回答一个问题:你到底想搜“定义处”还是“使用处”?前者靠 Goto Symbol 和作用域,后者靠正则和路径限定。漏掉这个区分,就容易反复试错。










