Sublime Text 中统计关键词出现次数最直接的方法是使用 Find All:输入关键词后按 Alt+Enter(Win/Linux)或 Cmd+Enter(Mac),状态栏即显示“X matches in Y file”;需确保状态栏开启,可关闭 Match Case 或启用 Whole Word 精确匹配。
用 Find All 一键统计关键词出现次数
Sublime Text 本身不提供“统计某词出现多少次”的独立命令,但 Find All 是最直接、零插件、实时反馈的方案——它不只高亮,还会在右下角状态栏明确显示匹配数,比如 7 matches。
- 快捷键:打开查找面板(
Ctrl+F),输入目标词 → 按Alt+Enter(Windows/Linux)或Cmd+Enter(Mac)触发Find All - 状态栏立刻更新为类似
7 matches in 1 file的提示;若没看到,请确认状态栏已开启(View → Show Status Bar) - 注意大小写和全字匹配:默认区分大小写,若想
user匹配User,点查找面板右上角的Aa按钮关闭「Match Case」;如需只匹配完整单词(不匹配username中的user),点\b按钮启用「Whole Word」
为什么不用正则手动 count?避免空行/换行符干扰
有人会想到用 Python 控制台跑 view.substr(view.find_all("xxx")).count("xxx"),但这容易出错:当关键词含换行符、或跨行匹配时,find_all 返回的是区域对象列表,直接拼接字符串再 count 会漏掉边界情况,且无法处理重叠匹配(如统计 aa 在 aaa 中出现次数)。
-
Find All底层使用 Sublime 自身的 regex 引擎,已做边界和重叠优化,结果可信 - 若真要用脚本(比如批量统计多个文件),应调用
view.find_all(...)后取len(),而非字符串 count:len(view.find_all(r"\buser\b", sublime.LITERAL)) - 别用
re.findall在 view.substr(view.full_line(0)) 上硬套——Sublime 的文本编码、换行符(CRLF/LF)、BOM 都可能让正则行为不一致
WordCount 插件不适用于关键词频统计
名字有误导性:WordCount(titoBouzout 版)只统计「单词总数」和「字符总数」,不是「某个词出现几次」。它甚至不解析语法,只是按空格/标点切分后计数,对 console.log(user.name) 这类代码完全无效。