linter-write-good 需先安装 linter 核心包并重启 atom 才能生效,仅做英文风格结构检查(非拼写),依赖命令行参数配置,中英混排易误报,须合理设置 scopes 和参数。

linter-write-good 依赖 linter 核心包才能工作
没装 linter,linter-write-good 就是摆设——它不会报错,也不会显示任何提示,只会安静地失效。Atom 1.24+ 版本强制要求这个前置依赖。
必须按顺序操作:
- 打开 Atom → Settings → Install,搜
linter,确认作者是steelbrain,安装 - 安装完立即执行 Window: Reload(或重启 Atom),否则 provider 加载不进生命周期
- 再搜
linter-write-good安装,此时它才能注册成功
如果右下角没出现 “Writing” 或 “Markdown” 提示,或者命令面板搜不到 Linter: Toggle,基本就是卡在这一步。
write-good 的检查范围默认不包含拼写纠错
linter-write-good 只做风格和结构检查(比如被动语态、there is、very),它不是拼写检查器。想标红错别字,得额外启用 spell-check 插件,并配好语言包。
常见误区:
- 以为装了
linter-write-good就能标出recieve这类拼写错误 —— 实际不会 - 只开
spell-check却没装spell-check-language-en(虽然英文包常预装,但不可假设) - 在代码文件(如
.js)里看到满屏红线,其实是spell-check错误扫描了source.js语法 —— 需清空Grammars to Check字段,或只保留text.plain、source.gfm
配置 write-good 检查项要用 --yes-eprime 或 --no-passive 这类参数
Atom 里的 linter-write-good 设置页里,“Extra Arguments” 字段才是控制逻辑的地方,不是勾选框。它最终会拼成类似 write-good --text="..." --yes-eprime --no-illusion 的命令。
有效参数示例:
-
--yes-eprime:启用 E-Prime 检查(禁用所有to be动词,如is、was) -
--no-passive:关闭被动语态检测(适合某些技术文档场景) -
--weasel:只开模糊词检查(kind of、sort of) -
--so:检查句首滥用so
注意:linter-write-good 不支持 JSON 配置中的 "eprime": true 这种写法 —— 它只认命令行参数,设置页填错格式(比如加引号或写成对象)会导致整个插件静默退出。
Markdown 文件里中文混排时检查容易误报
write-good 是为纯英文设计的,遇到中英夹杂的 Markdown(比如 README 中穿插代码块、中文说明、英文标题),会出现两类典型问题:
- 把中文标点当英文语法错误(如把
。后的空格识别为句子结尾缺失) - 在代码块或 inline code(
`const x = 1`)里检查英文单词,把变量名isReady当成is+Ready报被动语态
缓解方式有限:
- 确保
linter-write-good的 “Scopes” 设置里只包含source.gfm(GitHub Flavored Markdown),不要加source.js或text.html.basic - 对含大量中文的文档,建议关掉
--passive和--yes-eprime,只留--weasel和--so - 真正要兼顾中英,得靠人工 review,工具只能辅助英文段落
最常被忽略的一点:它不会跳过 fenced code block(``` 包裹的内容),但会跳过 HTML 注释和 YAML front matter —— 如果你文档开头有 ---\ntitle: xxx\n---,这部分不会被扫。











