VSCode 小说辅助插件
面向小说/网文写作的 VS Code 插件,提供:字数统计、敏感词高亮、码字计时与速率显示。
功能
- 字数统计:状态栏显示当前文档有效字符数(排除空白字符和控制字符);点击可查看详细统计。
- 有效字符:排除所有空白字符(空格、Tab、换行、回车等)和控制字符
- 细分显示:总有效字符 / 中文字数 / 英文字数
- 支持文件类型:
.txt 和 .md
- 敏感词检测:读取
敏感词.txt 或 敏感词.md(空白分隔),在编辑器中用红色高亮匹配词汇。
- 码字计时:检测到文本实际变更(插入/删除)即启动计时;连续 5 秒无变动时自动暂停。
- 码字速率:基于净输入字符数与实际码字时间计算,单位为每小时字符数。
- 自动空行:检测到换行时自动插入重叠换行符,形成段落间空一行的效果(
.txt 和 .md 都支持)。
使用说明
- 打开本项目文件夹。
- 按
F5 启动 Extension Development Host 进行调试。
- 在工作区根目录(或当前文件同目录)创建/修改
敏感词.txt 或 敏感词.md:
词1 词2 敏感词
- 打开任意
.txt 或 .md 文件开始码字,状态栏会显示"字符 / 计时 / 速率"。
- 点击状态栏"字符"项可查看中文/英文统计。
- 按回车键会自动添加空行,便应对写作习惯。
敏感词文件规则
- 文件名称:
敏感词.txt 或 敏感词.md
- 查找优先级:优先当前文件目录 → 工作区根目录;优先
.txt → 再 .md
- 分隔方式:任意空白字符(空格/换行/Tab)
- 建议:一行一个词或空格分隔均可
敏感词配置
- 复制
敏感词.example.txt 为 敏感词.txt
- 编辑
敏感词.txt,添加需要检测的词汇
- 词汇用空格或换行分隔
计时与速率口径(重要)
- 计时启动:仅当发生"插入或删除"时,才被视为有字符变动,会启动或重置计时器。
- 自动暂停:连续 5 秒无任何文本变更,计时器和速率刷新器同时暂停。
- 净输入统计:
globalTypedCount = 累计所有"插入字符数 - 删除字符数",删除操作会减少净输入。
- 速率公式:
rate = round(globalTypedCount / (globalAccumulatedSeconds / 3600))
- 使用净输入而非总文档字符,更能反映实际有效写作效率
- 字符统计规则:
- 有效字符定义:排除
[\s\u0000-\u001f\u007f-\u009f](空白+控制字符)
- 中文统计:
[\u4e00-\u9fff]
- 英文统计:
[A-Za-z]
自动空行机制
插件在 本地 .txt 和 .md 文件 中监听文本变化:
- 当检测到本次变更文本中包含换行(
\n)时,会 额外插入一个换行符,从而形成“段落间空一行”的效果。
- 该逻辑仅对当前活跃编辑器生效,避免后台文档被意外修改。
- 使用
isAutoFormatting 保护开关防止递归编辑。
状态栏显示说明
- 字符:显示有效字符数(实时计数),可点击弹出详细统计。
- 计时:显示累计码字时间(hh:mm:ss 格式),5 秒无操作时暂停。
- 速率:显示每小时字符速率(字/h),基于净输入和实际码字时间计算。
已知限制
- 自动空行基于文本变化事件,某些输入法/编辑行为可能将多步变化合并,导致体验与“按键级监听”不同。
- 若需要严格按“按键回车”触发,更适合用
type 命令拦截(键位级),但实现复杂度更高。
备注
- 代码内已补充较详细中文注释,便于二次开发与定位问题。
| |