vlajos/misspell-fixer用于修复源代码中常见拼写错误和错别字的工具。程序代码中存在许多典型拼写错误,这些错误在活跃代码中较易发现,但在注释、示例、样本、说明和文档中容易隐藏。使用此工具可快速修复大量此类错误。
注意:工具不检查或修复文件名。代码中引用的文件名若被修复,实际文件不会被重命名。修复公共API时需格外谨慎!始终需要手动检查以确保未破坏任何内容。
misspell-fixer [OPTION] target[s]
target[s] 可以是任何文件或目录。
-r:真实运行模式。用修复后的文件覆盖原始文件。不使用此选项时,原始文件保持不变。-n:禁用备份。(默认情况下,修改后的文件原始版本将以 .$$.BAK 后缀保存。)-P n:启用 n 个进程并行处理。例如:-P 4 表示使用4个线程处理文件。(不支持 -s 选项)-f:快速模式。(等同于 -P4)-h:显示帮助信息。性能说明:-s、-v 选项,或未使用 -n、-r 时,会使用较慢的内部处理循环。通常 -frn(不配合 -s 和 -v)是性能最高的组合。
-s:显示修改的差异(diff)。-v:详细模式。显示迭代的文件(不包含预过滤步骤)。-o:进度显示模式。每个扫描的文件打印一个点,每个修复的文件打印一个逗号。-d:调试模式。显示核心逻辑的所有步骤。默认仅启用部分规则(约100条)。可通过以下选项启用更多规则:
-u:启用安全性较低的规则(需更严格的手动检查)(约10条)。-g:启用将英式英语转换为美式英语的规则(非严格拼写错误,但有时有用)(约10条)。-R:启用罕见规则(约数百条)。-V:启用极罕见规则(主要来自***文章)(超过4000条)。-D:启用基于 lintian.debian.org 的规则(git:ebac9a7,约2300条)。性能影响:启用更多规则会降低处理速度,但新版本 grep 对此优化显著。
-G:遵循 .gitignore 文件。(需要可执行的 git 命令)(实验性)-N:启用文件名过滤。例如:-N '*.cpp' -N '*.h'-i:遍历源代码管理系统的内部目录。(不忽略 .git、.svn、.hg、CVS)-b:处理二进制文件和生成文件。(不忽略 *.gif、*.jpg、*.jpeg、*.png、*.zip、*.gz、*.bz2、*.xz、*.rar、*.po、*.pdf、*.woff、yarn.lock、package-lock.json、composer.lock、*.mo、*.mov、*.mp4、*.jar)-m:禁用文件大小检查。默认忽略大于1MB的文件(通常是csv、压缩JS等)。Misspell-fixer 会自动忽略 .misspell-fixer.ignore 或 .github/.misspell-fixer.ignore 文件中列出的匹配模式。该文件格式遵循预过滤临时结果格式:
^filename:line number:matched word
-W:将发现的问题追加到白名单文件,而非根据其他设置修复。-w filename:覆盖白名单文件名称。白名单文件被解释为 grep 排除列表,在预过滤步骤后应用。可排除特定前缀或文件:
^filename^directory注意:白名单条目基于当前调用路径。从同一工作目录以不同路径访问同一目标时,其他调用生成的白名单条目不适用。
脚本通常返回 0 表示未发现拼写错误或错误:
0:未发现拼写错误1-5:发现拼写错误。返回值表示执行的迭代次数。10:成功打印帮助信息11:成功保存白名单100-:参数错误(无效、缺失、冲突)无参数时,脚本不修改任何内容,输出最少。返回值可用于检测是否发现拼写错误:
bash$ misspell-fixer target
修复文件并显示每个被修复的文件:
bash$ misspell-fixer -rv target
仅显示差异而不修改原始文件:
bash$ misspell-fixer -sv target
显示差异、进度并修复发现的拼写错误:
bash$ misspell-fixer -rsv target
快速模式示例,无备份(最高性能):
bash$ misspell-fixer -frn target
启用所有规则的快速模式:
bash$ misspell-fixer -frunRVD target
在某些环境(Mac、Windows、旧版Linux)中,依赖可能导致问题。此时可使用Docker容器镜像。
bash$ docker pull vlajos/misspell-fixer
bash$ docker run -ti --rm -v targetdir:/work vlajos/misspell-fixer -frunRVD .
直接通过Docker执行:
bash$ docker run -ti --rm -v targetdir:/work vlajos/misspell-fixer [arguments]
targetdir 会成为容器中的当前工作目录,因此可在参数中用 . 引用。
使用源码仓库中的 dockered-fixer 包装器:
bash$ dockered-fixer [arguments]
若shell支持函数,可定义函数简化命令:
bash$ function misspell-fixer { docker run -ti --rm -v $(pwd):/work vlajos/misspell-fixer "$@"; }
使用函数修复:
bash$ misspell-fixer [arguments]
通过包装器和函数仅能访问当前工作目录下的文件夹,因为只有该目录作为卷挂载到容器中。
通常无需本地构建,但可执行以下命令:
bash$ docker build . -t misspell-fixer
存在 GitHub Action 可运行 misspell-fixer,甚至能自动发送包含修复的PR。
脚本本质是一个拼写错误数据库,通过 bash 连接 grep 和 sed 实现功能。grep 的 -F 选项结合 sed 的行定位使其高效,-F 启用基于 Aho–Corasick算法 的并行模式匹配。注意:仅较新版本(2.28+)的 grep 正确支持 -w 选项。
完整依赖列表:
.gitignore 文件)[***]
欢迎使用!
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像服务
在 Docker Desktop 配置镜像
Docker Compose 项目配置
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
MacOS OrbStack 容器配置
在宝塔面板一键配置镜像
Synology 群晖 NAS 配置
飞牛 fnOS 系统配置镜像
极空间 NAS 系统配置服务
爱快 iKuai 路由系统配置
绿联 NAS 系统配置镜像
QNAP 威联通 NAS 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等;免费版仅支持 docker.io。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
来自真实用户的反馈,见证轩辕镜像的优质服务