Notepad++需借助Python Script插件运行自定义脚本实现可靠词频统计;TextFX等插件仅支持简单排序,无法聚合计数、去重或导出,且新版已移除;“查找全部”不统计频次,正则需手动启用且易误匹配。

Notepad++ 本身不内置关键词频率统计功能,但通过官方插件 TextFX 或更现代的 Document Monitor + Python Script 组合,能快速完成基础词频统计;真正稳定、可复用、支持导出的方案,依赖 Python Script 插件配合自定义脚本——这是目前最可控的方式。
为什么不能直接用「查找全部」看次数?
「查找全部」只高亮并列出匹配行号,不聚合计数,也无法去重或忽略大小写/标点干扰。比如搜索 error,会把 errors、ErrorHandler、debug_error 全算进去,结果不可信。
- 默认查找不支持正则边界符
\berror\b(需手动勾选「正则表达式」且写对语法) - 无法按词频降序排列,更不能导出为表格
- 中文分词完全失效——搜
用户会命中用户名、用户中心,但 Notepad++ 不做语义切分
用 Python Script 插件跑轻量词频脚本(推荐)
前提是已安装 Python Script 插件(v1.0.8+,支持 Python 3.6+)。它允许你写几行代码直接操作当前文档文本,比配置插件菜单更灵活。
- 菜单栏 →
Plugins→Python Script→New script,保存为word_freq.py - 粘贴以下最小可行脚本(仅统计纯英文单词,忽略大小写,跳过数字和符号):
import re
from collections import Counter
text = notepad.getCurrentEditor().getText()
words = re.findall(r'\b[a-zA-Z]+\b', text.lower())
freq = Counter(words)
for word, count in freq.most_common(20):
notepad.messageBox(f'{word}: {count}', 'Top 20 Words')
- 想统计中文?替换正则为
r'[\u4e00-\u9fff]+,但注意:这不等价于“词语”,只是连续汉字片段 - 要导出 CSV?在脚本末尾加
with open('freq_report.csv', 'w', encoding='utf-8') as f: ...,路径默认在 Notepad++ 安装目录下 - 运行前务必确认文档编码是
UTF-8(菜单 →Encoding→Convert to UTF-8),否则中文会乱码
TextFX 插件只能做简单排序,别当词频工具用
TextFX 是老插件(已停止维护),它的 TextFX Characters → Sort lines case sensitive (asc) 只能对整行排序,不是词频统计。有人误以为「先用正则提取所有关键词到新窗口,再排序去重」就能算频次——实际做不到,因为排序不带计数。
- 它没有
count occurrences功能,也没有分组聚合能力 - 在新版 Notepad++(v8.5+)中,默认不带 TextFX,需手动下载旧版 DLL 并放入
plugins目录,兼容性风险高 - 即使强行用「复制→粘贴→行排序→人工肉眼扫重复行」,100 行以内尚可,超过 500 行就极易漏判
真正卡住多数人的不是技术路径,而是没意识到:Notepad++ 的定位是文本编辑器,不是分析工具。如果需要稳定、可复现、支持停用词过滤或 TF-IDF 的报告,直接导出文本到 VS Code + Python 或用 grep -o + sort | uniq -c 更省事。插件只是临时补位,别让它承担设计之外的负载。


















