golangci-lint的misspell linter可检测并自动修复Go代码中的英文拼写错误,需在.golangci.yml中启用并配置locale、ignore-words和ignore-files,运行--fix命令修复后须人工复核。

你的Go项目里出现了大量英文单词拼写错误,比如recieve写成receive、definately写成definitely,这些错误在编译时不会报错,却严重影响代码可读性和文档生成质量——golangci-lint 的 misspell linter 正是专治这类问题的轻量级拼写检查器。
启用 misspell 检查器
打开项目根目录下的 .golangci.yml 配置文件,在 linters: 下的 enable: 列表中添加 misspell:
```yaml
linters:
enable:
- misspell
- govet
- errcheck
```
【必须删除 disable: 块】 如果配置里同时存在 disable: 和 enable:,golangci-lint 会直接报错退出,二者不可共存。
立即学习“go语言免费学习笔记(深入)”;
自定义 misspell 词典与规则
默认 misspell 使用内置英文词典,但项目常含专有名词(如团队名、产品名、内部 API 名),需手动豁免或扩展。在 .golangci.yml 中添加 linters-settings: 区块:
```yaml
linters-settings:
misspell:
locale: US
ignore-words:
- GopherCon
- Zerolog
- Fx
ignore-files:
- ".*\.md$"
- "go\.mod"
```
locale: US 强制使用美式拼写规范(避免 colour 被误标为错误);ignore-words 列出所有合法专有名词,大小写敏感;ignore-files 用正则跳过 Markdown 和模块文件——这些文件里大量出现的拼写变体无需检查。
本地快速修复全部拼写错误
第一步:运行带自动修复的扫描命令golangci-lint run --fix
第二步:确认修改是否合理
misspell 的自动修复仅作用于明确匹配词典的错误(如 adn→and),对模糊词(如 recieve→receive)也支持,但【不会修改注释中的 URL、代码标识符、字符串字面量内的内容】——它只改纯自然语言文本段落。
第三步:提交前人工复核
执行 git diff 查看所有被修改的行,重点检查函数注释、结构体字段说明、错误消息字符串是否被误改。例如:// recieveChan is closed when done 会被修正为 // receiveChan is closed when done,这是安全的;但若原注释是 // use recieve() to trigger event(指某个自定义函数名),则 misspell 不会动它——因为函数名在代码上下文中属于标识符,不在其检测范围内。


















